r - 如何在同一个图中创建两个 ggplot 箱线图?
问题描述
我在 R 中有一个数据集,其中包括 6 个定量变量和另一个二进制变量。我的目标是,对于每个 cuantitative 变量,创建一个箱线图来比较这个变量的两个级别的二进制变量的值,并且我希望使用 ggplot 将 6 个图像放入 R 中的单个图形中。
考虑下面的例子来说明我在说什么。到目前为止,我知道如何使用 R 中的默认“boxplot”函数来解决这个问题:
X = data.frame(a = c(rep("T", 5), rep("F", 5)),
b = rnorm(10),
c = runif(10))
par(mfrow = c(1, 2))
boxplot(b ~ a, data = X)
boxplot(c ~ a, data = X)
而且我知道如何使用 ggplot 创建我想要的两个箱线图:
library(ggplot2)
ggplot(X, aes(x = a, y = b)) +
geom_boxplot(aes(fill = a))
ggplot(X, aes(x = a, y = c)) +
geom_boxplot(aes(fill = a))
我不知道如何将两个 ggplot 箱线图显示为一个图形。
解决方案
这是你需要的吗?我认为填写“id”比填写. 编辑:最终答案
X %>%
gather("id","value",2:3) %>%
group_by(id) %>%
ggplot(aes(a,value,fill=id))+geom_boxplot()+facet_wrap(~id)
原来的:
回答:如果你想填写一个,那么:
X %>%
gather("id","value",2:3) %>%
group_by(id) %>%
ggplot(aes(id,value))+geom_boxplot(aes(fill=a))
否则:
library(tidyverse)
X %>%
gather("id","value",2:3) %>%
group_by(id) %>%
ggplot(aes(a,value,fill=id))+geom_boxplot()
推荐阅读
- python - 虚拟环境是在我的用户文件夹中制作的
- http - 我可以将 Postman 配置为仅在受到 401 挑战时才发送授权标头吗?
- javascript - 如何路由出动态路由?
- ios - iOS(Swift 5)中带有弯曲边缘的雷达/蜘蛛图
- bash - 使用 JQ 和类似过滤器过滤 bash 中的 IPv4 和 IPv6 地址
- reactjs - 如何在 react-markdown 中使用自定义组件
- ios - 在委托方法中无法检测到 IOS 通用链接
- python - 如何在 Python 中打印包含特定字符串的文本文件的行?
- css - Angular 10:mat-tabel 可扩展行
- html - 为什么在引导程序中同时崩溃显示 2 张卡?