我希望主要/次要网格线的 ggplot 网格线厚度不同

sta*_*tor 7 r ggplot2

我的例子取自这里(链接)。R 版本是 3.4.3,ggplot2 版本是 2.2.1

library(tidyverse)
df <- data.frame(dose=c("D0.5", "D1", "D2"),
                    len=c(4.2, 10, 29.5))

    ggplot(data=df, aes(x=dose, y=len)) +
      geom_bar(stat="identity")
Run Code Online (Sandbox Code Playgroud)

几乎每个 ggplot2 教程都展示了一些简单的图表。我总是注意到主要网格线的厚度大约是次要网格线的两倍,这正是我所期望的。这显示在下面的第一张图片中。看起来不错。

每当在 ggplot 上绘制某些内容时,默认情况下,次要网格线和主要网格线共享相同的权重、相同的厚度。为什么?我没有更改任何网格线设置?是否有一些我不小心启用/禁用的 R Studio 全局设置?我希望次要网格线比主要网格线更轻,就像显示的第一张图片一样。第二张图片是我在 ggplot 图表时得到的。

right_grid.png

不正确_grid.png

小智 11

您可以使用主题功能更改网格线的粗细

df <- data.frame(dose=c("D0.5", "D1", "D2"),
            len=c(4.2, 10, 29.5))

ggplot(data=df, aes(x=dose, y=len)) +
       geom_bar(stat="identity") + 
       theme(panel.grid.minor = element_line(size = 0.5), panel.grid.major = element_line(size = 1))
Run Code Online (Sandbox Code Playgroud)

  • 这种行为在我的默认情况下确实发生在`theme_grey()` 和`theme_bw()` 中。我正在使用 ggplot2 2.2.1.9000。主要网格线确实是次要网格线厚度的两倍。如果你设置`theme_grey()` (`theme_set(theme_grey())`) 然后执行`theme_get()$panel.grid.minor` 你会看到一个设置为`rel` 0.5的`size`行,表示相对于默认线宽的一半大小(可在`theme_get()$line` 中找到。 (2认同)