在ggplot2中绘制两个具有相同y变量但不同x变量的箱线图

Posted

技术标签:

【中文标题】在ggplot2中绘制两个具有相同y变量但不同x变量的箱线图【英文标题】:Plot two box plots with same y variable but different x variables in ggplot2 【发布时间】:2020-12-02 07:41:51 【问题描述】:

我有一个包含 3 列的数据集。一是每月支出(y 变量)。此变量中的每个值都在两个不同的变量下分类为 1 或 0。

数据看起来像这样:

  df_UP.q234_month_exp df_UP.LFT df_UP.LF
1                   NA         0        1
2                   NA         1        1
3                12000         1        1
4                   NA         1        1
5                20000         1        1
6                   NA         0        1

数据大约有 1200 行。

我想要一个图,它为 'df_UP.q234_month_exp' 创建一个箱形图作为 'df_UP.LFT' 的所有行的 y 变量,它们是 1,并且在同一个图中使用相同的 y 变量创建另一个箱形图,但是'df_UP.LF' 的所有行都是 1。

如何使用 ggplot2 实现这一点?

【问题讨论】:

你能告诉我们你到目前为止所做的尝试吗? 类似的东西应该可以工作:ggplot(dat, aes(factor(f), var)) + geom_boxplot() + facet_wrap(.~g) 其中fg 是您的二进制变量,var 您的数字变量。 【参考方案1】:

你可以试试这个:

library(tidyverse)
#Data
df <- structure(list(df_UP.q234_month_exp = c(NA, NA, 12000L, NA, 20000L, 
NA), df_UP.LFT = c(0L, 1L, 1L, 1L, 1L, 0L), df_UP.LF = c(1L, 
1L, 1L, 1L, 1L, 1L)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6"))

代码:

df %>% pivot_longer(cols = -df_UP.q234_month_exp) %>%
  filter(value==1) %>% ggplot()+
  geom_boxplot(aes(x = name,y = df_UP.q234_month_exp,color=name,group=name))

输出:

【讨论】:

以上是关于在ggplot2中绘制两个具有相同y变量但不同x变量的箱线图的主要内容,如果未能解决你的问题,请参考以下文章

Pyqtgraph:在同一个图形窗口中实时绘制两个图形相同的X轴但两个不同的Y轴方向相反

ggplot2:绘制具有不同截距但具有相同斜率的回归线

R - 具有共享/相同 x 和 y 轴的直方图

ggplot2() 按因子绘制一个变量与自身的关系?

ggplot2 - 在大小图例中显示多个键(形状)

R语言ggplot2包绘制双坐标轴图(双Y轴图)实战:两个Y轴分别使用不同的刻度范围