2012-10-09 44 views
31

默认情况下,似乎ggplot2使用的只是主要网格的一半的次要网格。有没有办法打破这个问题?如何控制ggplot2中次网格线的数量?

例如,我有一个情节,其中x轴是几年,主要休息时间是(1850,1900,1950,2000)。这意味着小格点在(1875年,1925年,1975年),这是多年来有点不直观。我怎样才能让小网格出现在每十年?

+2

你可以消除与网格线(在最新版本的GGPLOT2)'主题(panel.grid.major.x = element_blank(),panel.grid .minor.x = element_blank())'并将它们添加到你认为合适的地方:'geom_vline' –

+0

由于你没有提供任何示例数据,我用默认的'ggplot'数据集来展示它。 – Maiasaura

+0

@TylerRinker:不寻找消除。还有其他的问题。 – naught101

回答

62

您可以通过在scale_x_continuous中明确指定minor_breaks()来实现。请注意,因为我没有在下面的示例中指定panel.grid.major,所以下面的两个图没有这些(但是如果需要它们,您应该添加这些图)。为了解决你的问题,你应该指定年份作为序列或者只是年份的向量作为参数minor_breaks()

例如

ggplot(movies, aes(x=rating)) + geom_histogram() + 
theme(panel.grid.minor = element_line(colour="blue", size=0.5)) + 
scale_x_continuous(minor_breaks = seq(1, 10, 1)) 

enter image description here

ggplot(movies, aes(x=rating)) + geom_histogram() + 
theme(panel.grid.minor = element_line(colour="blue", size=0.5)) + 
scale_x_continuous(minor_breaks = seq(1, 10, 0.5)) 

enter image description here

+1

谢谢,不知道我错过了那个。另外,我不明白你为什么让它们变成蓝色......它比灰色上的默认白色更丑陋...... – naught101

+6

只是为了突出我的观点。我认为蓝色也很丑陋(你不必使用该选项)。 – Maiasaura

+68

你解决了这个家伙的问题,他的回答是批评你的颜色选择? +1 –

相关问题