这是这个问题的后续,我试图抑制垂直网格线。
学习者提供的解决方案是添加 scale_x_continuous(breaks = NA),但这也有抑制 x 轴标签的副作用。我很高兴能用手把标签写回去,但我不清楚如何弄清楚标签应该放在哪里。
另一个选项是抑制所有网格线(使用 opts(panel.grid.major = theme_blank()) 或类似的方法),然后只画回主要的水平网格线。同样,这里的问题是如何找出图中要提供给 geom_hline() 的中断点。
所以,基本上,我的选择是:
- 抑制垂直网格线和 x 轴标签(使用 scale_x_continuous(breaks = NA) )并重新添加 x 轴标签。
- 抑制所有网格线(使用 opts(panel.grid.major = theme_blank()))并使用 geom_hline() 添加主要的水平网格线。
以下是两个选项:
library(ggplot2)
data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))
# suppressing vertical gridlines and x-axis labels
# need to re-draw x-axis labels
ggplot(data, aes(x, y)) +
geom_bar(stat = 'identity') +
scale_x_continuous(breaks = NA) +
opts(
panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
panel.grid.minor = theme_blank(),
panel.background = theme_blank(),
axis.ticks = theme_blank()
)
# suppressing all gridlines
# need to re-draw horizontal gridlines, probably with geom_hbar()
ggplot(data, aes(x, y)) +
geom_bar(stat = 'identity') +
scale_x_continuous(breaks = NA) +
opts(
panel.grid.major = theme_blank(),
panel.grid.minor = theme_blank(),
panel.background = theme_blank(),
axis.ticks = theme_blank()
)