更改特定网格线的颜色ggplot2 R脚本
Change the color of specific gridline ggplot2 R script
我一直在尝试使用 ggplot2 绘制我的 2 向交互式箱线图,到目前为止我非常成功。因为我希望观众能够根据他们是消极的和积极的来比较结果,我认为在 y=0 处更改网格线的颜色会很整洁;我搜索了很多,我在网上找不到任何类似的问题。我什至尝试自己操纵 theme() 功能。
我意识到次要网格线不能有标签,如果次要网格线和主要网格线重叠,该行将继承主要行的主题特征。因此,我可以将 y=0 转换为不带任何标签的次网格线,或者我可以将 y=0 作为主线,但其余部分将是次要的,因此不显示任何标签。 (我显然不希望所有的网格线都比 y=0 暗,因为那样它就不会很明显。
下图显示了第一种情况:
p + scale_y_continuous(expand = c(0, 0), breaks = c(-40, 40, -20, 20), minor_breaks = c(0))
+theme(panel.grid.minor.y = element_line(color="#54545B"))
此图表显示第二种情况:
p + scale_y_continuous(expand = c(0, 0), breaks = seq(-40, 40, 40), minor_breaks = c(-20, 20))
+theme(panel.grid.major.y = element_line(color="#54545B"))
有人遇到同样的问题吗?有没有什么好的解决方案可以在不使用 Photoshop(手动操作图表!)的情况下做到这一点?
我会使用 geom_hline(yintercept = 0)
。在 geom_boxplot
之前指定它,以便它位于框下方的图层中。
示例数据:
set.seed(123)
data.frame(x = rep(c("A", "B"), each = 10),
y = sample(-100:100, 20, replace = TRUE)) %>%
ggplot(aes(x, y)) +
geom_hline(yintercept = 0) +
geom_boxplot()
除了 neilfws 的回复之外,将您的颜色代码添加到 geom_hline()
中的 color
参数中。我编辑了 neilfw 的代码以包含以下内容:
set.seed(123)
data.frame(x = rep(c("A", "B"), each = 10),
y = sample(-100:100, 20, replace = TRUE)) %>%
ggplot(aes(x, y)) +
geom_hline(yintercept = 0,color="#54545B") +
geom_boxplot()
我一直在尝试使用 ggplot2 绘制我的 2 向交互式箱线图,到目前为止我非常成功。因为我希望观众能够根据他们是消极的和积极的来比较结果,我认为在 y=0 处更改网格线的颜色会很整洁;我搜索了很多,我在网上找不到任何类似的问题。我什至尝试自己操纵 theme() 功能。
我意识到次要网格线不能有标签,如果次要网格线和主要网格线重叠,该行将继承主要行的主题特征。因此,我可以将 y=0 转换为不带任何标签的次网格线,或者我可以将 y=0 作为主线,但其余部分将是次要的,因此不显示任何标签。 (我显然不希望所有的网格线都比 y=0 暗,因为那样它就不会很明显。
下图显示了第一种情况:
p + scale_y_continuous(expand = c(0, 0), breaks = c(-40, 40, -20, 20), minor_breaks = c(0))
+theme(panel.grid.minor.y = element_line(color="#54545B"))
此图表显示第二种情况:
p + scale_y_continuous(expand = c(0, 0), breaks = seq(-40, 40, 40), minor_breaks = c(-20, 20))
+theme(panel.grid.major.y = element_line(color="#54545B"))
有人遇到同样的问题吗?有没有什么好的解决方案可以在不使用 Photoshop(手动操作图表!)的情况下做到这一点?
我会使用 geom_hline(yintercept = 0)
。在 geom_boxplot
之前指定它,以便它位于框下方的图层中。
示例数据:
set.seed(123)
data.frame(x = rep(c("A", "B"), each = 10),
y = sample(-100:100, 20, replace = TRUE)) %>%
ggplot(aes(x, y)) +
geom_hline(yintercept = 0) +
geom_boxplot()
除了 neilfws 的回复之外,将您的颜色代码添加到 geom_hline()
中的 color
参数中。我编辑了 neilfw 的代码以包含以下内容:
set.seed(123)
data.frame(x = rep(c("A", "B"), each = 10),
y = sample(-100:100, 20, replace = TRUE)) %>%
ggplot(aes(x, y)) +
geom_hline(yintercept = 0,color="#54545B") +
geom_boxplot()