2017-08-25 34 views
2

假设我想使用ggplot创建一个如下所示的绘图,但是我想保留x轴上的所有刻度标记(对于每个整数),但仅显示5,10,15,20的网格线和25.如何修改我的代码以删除无关的网格线?如何保留所有刻度但删除x轴上的大多数网格线?

too many grid lines!

ggplot(cars, aes(x = speed, y = dist)) + 
geom_point() + 
scale_x_continuous(breaks = seq(1, 25, 1), 
        limits = c(1, 25), 
        labels = seq(1, 25, 1)) + 
theme(panel.grid.minor.x = element_blank()) 

回答

3

您可以删除所有的网格线与theme声明,但随后创建使用geom_vline新的网格线。例如:

ggplot(cars, aes(x = speed, y = dist)) + 
    geom_vline(xintercept=seq(0,25,5), colour="white") + 
    geom_point() + 
    scale_x_continuous(breaks=1:25, limits=c(1,25)) + 
    theme(panel.grid.minor.x = element_blank(), 
     panel.grid.major.x = element_blank()) 

enter image description here

+0

鬼鬼祟祟,偷偷摸摸的!这样做 - 谢谢你! –