【问题标题】:I want ggplot gridline thickness to be different for major/minor gridlines我希望 ggplot 网格线的粗细对于主要/次要网格线不同
【发布时间】:2018-04-04 15:34:36
【问题描述】:

My example is taken from here (link).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")

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

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

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

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

    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))
    

    【讨论】:

    • 感谢您提供的信息。但是为什么默认情况下不会发生这种行为,就像我在网络上看到的每个可重现的 ggplot 示例一样?也许我的 ggplot2 较新,并且这种行为在较新版本的 ggplot2 中发生了变化。
    • 默认情况下,theme_grey()theme_bw() 都会发生这种行为。我正在使用 ggplot2 2.2.1.9000。主要网格线确实是次要网格线厚度的两倍。如果您设置theme_grey() (theme_set(theme_grey())),然后执行theme_get()$panel.grid.minor,您将看到size 行设置为rel 0.5,表示相对于默认线宽的一半大小(在@ 987654329@.
    • 我从未更改过任何theme_set 设置。奇怪的。为什么我的size 会设置为num 0.25?有什么方法可以将所有 ggplot2 设置恢复为默认值&gt; theme_get()$panel.grid.minor List of 6 $ colour : chr "white" $ size : num 0.25 $ linetype : NULL $ lineend : NULL $ arrow : logi FALSE $ inherit.blank: logi TRUE - attr(*, "class")= chr [1:2] "element_line" "element"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多