这是这个问题的后续,我试图压制垂直网格线.
学习者提供的解决方案是添加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()
)
Run Code Online (Sandbox Code Playgroud)
由于评论中的代码不能很好地显示,所以我将此作为答案发布.您可以执行以下操作并手动添加标签geom_text():
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()
)+
geom_text(aes(label = x, y = -.3))
Run Code Online (Sandbox Code Playgroud)