如何控制ggplot2中次要网格线的数量?

nau*_*101 40 r ggplot2

默认情况下,ggplot2似乎使用的主网格只是主网格的一半.有什么办法可以解决这个问题吗?

例如,我有一个图表,其中x轴是年,而主要的休息是(1850年,1900年,1950年,2000年).这意味着次要网格点位于(1875,1925,1975),多年来有点不直观.如何在每十年出现一次小网格?

Mai*_*ura 79

你可以通过minor_breaks()scale_x_continuous.中明确指定来实现.请注意,由于我没有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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

 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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 你解决了这个家伙的问题以及他对批评你的颜色选择的反应吗?+1 (91认同)
  • 只是为了突出我的观点.我认为蓝色也很难看(你不必使用那个选项). (7认同)
  • 对于日期对象,似乎这将起作用:``scale_x_date(labels = date_format("%Y"),breaks = seq(as.Date("1990-01-01"),as.Date("2016-01" -01"),by ="5年"),minor_breaks ="1年")``但是``minor_breaks``在我在``seq``命令中设置开始和结束日期时对我不起作用在一个与"断裂"相同的庄园中. (3认同)