繁体   English   中英

如何在 ggplot2 的箱线图中添加一个小网格?

[英]How to add a minor grid in boxplots in ggplot2?

我想在箱线图中的两个主要网格之间添加一个垂直次要网格,其中ggplot2具有离散的 x 变量。

这是示例:

boxplot <- ggplot(data = mtcars ,aes(x = as.factor(cyl),y=wt, fill=as.factor(am))) + geom_boxplot()
boxplot

从可视化中可以看出,哪个框属于哪个 x 标签可能不清楚,因为主要的垂直网格将两个框分隔在同一个 x 变量处(这里可能不是问题,但是当有许多 x 变量和窄框)。 因此,我正在考虑在每个主要网格的中间添加一个次要网格。 我尝试在 ggplot2 中使用“minor grid.x”,如下所示,但我看不到任何添加的行。

boxplot + theme(panel.grid.minor.x = element_line(color="black"))

我查看了有关设置网格线的相关帖子,但似乎它们专注于连续 x 变量,不适用于箱形图。

先感谢您。

感谢@Allan Cameron 更新:

ggplot(data = mtcars ,aes(x =factor(cyl),y=wt, fill=as.factor(am))) + 
  geom_boxplot() +
  geom_vline(xintercept = c(1.5, 2.5),linetype="dashed",colour="green",size=1)

第一个答案:

您是否正在寻找这样的解决方案:

library(ggplot2)
ggplot(data = mtcars ,aes(x =factor(cyl),y=wt, fill=as.factor(am))) + 
  geom_boxplot() +
  geom_vline(aes(xintercept=1.5),linetype="dashed",colour="green",size=1)+
  geom_vline(aes(xintercept=2.5),linetype="dashed",colour="green",size=1)

在此处输入图像描述

你可以试试这个并修改主题的值,看看什么更适合你:

boxplot + 
  theme(
    panel.grid.major.y = element_line(color = "blue",
                                      size = 0.5,
                                      linetype = 2),
    panel.grid.minor.y = element_line(color = "red",
                                        size = 0.25,
                                        linetype = 1),
    panel.grid.major.x = element_line(color = "green",
                                      size = 0.5,
                                      linetype = 3)
    )

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM