我怎样才能抑制ggplot2阴谋的垂直网格线?

我正在构build一个条形图,其中横条(x)的位置足以表示条形,所以我想避免画出多余的垂直网格线。

我知道如何deviseopts()中的小网格线和主网格线,但是我不能在我的生活中弄清楚如何仅仅抑制垂直网格线。

library(ggplot2) data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4)) ggplot(data, aes(x, y)) + geom_bar(stat = 'identity') + opts( panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'), panel.grid.minor = theme_line(colour = NA), panel.background = theme_rect(colour = NA), axis.ticks = theme_segment(colour = NA) ) 

在这一点上,它看起来像我将不得不压制所有的网格线,然后用geom_hline()把它们拉回来,这似乎是一种痛苦(也不完全清楚,我怎么能find蜱/主要网格线位置,以馈给geom_hline()。)

任何想法将不胜感激!

尝试使用

scale_x_continuous(break = NULL)

这将删除所有垂直网格线以及x轴tickmark标签。

从ggplot2 0.9.2开始,使用“主题”变得容易。 您现在可以将主题分别分配给panel.grid.major.x和panel.grid.major.y,如下所示。

 # simulate data for the bar graph data <- data.frame( X = c("A","B","C"), Y = c(1:3) ) # make the bar graph ggplot( data ) + geom_bar( aes( X, Y ) ) + theme( # remove the vertical grid lines panel.grid.major.x = element_blank() , # explicitly set the horizontal lines (or they will disappear too) panel.grid.major.y = element_line( size=.1, color="black" ) ) 

这个例子的结果是相当丑陋的看,但它演示了如何删除垂直线,同时保留水平线和X轴刻度。

这只留下你的数据点:

 ggplot(out, aes(X1, X2)) + geom_point() + scale_x_continuous(breaks = NULL) + scale_y_continuous(breaks = NULL) + opts(panel.background = theme_blank()) + opts(axis.title.x = theme_blank(), axis.title.y = theme_blank())