r - 在箱线图中分离子组
问题描述
我使用箱线图可视化了一些数据。每个变量都属于一个子组,我想在箱线图中分隔/指示这些子组。要么在每个“变量组”之间创建一个小间隙,要么以某种方式在不同的变量所属的变量上指示而不使用fill = type
. 下面我生成了一些可以作为示例数据的数据。
require(tidyverse)
set.seed(1234)
value <- sample(20:80, 1000, replace = T)
group <- sample(c("A1", "A2", "B1", "B2", "C1", "C2"), 1000, TRUE)
df <- as.data.frame(cbind(value, group))
df <- df %>%
mutate(value = as.numeric(value),
type = ifelse(grepl("*2", group),"Group 2", "Group1"),
)
ggplot(df, aes(x=value, y =group))+
geom_boxplot() +
xlim(0, 100)
这给出了以下箱线图:
我尝试通过添加facet_wrap(~type, dir="v")
生成以下图来对图进行分组:
但是,我不知道如何删除空变量(例如,在第 2 组中:A1、B2、C3)。
有谁知道如何在不使用的情况下以适当的方式(使用facet_wrap()
或不使用)指示箱线图中的变量子组fill = type
?
解决方案
您可以使用以下方法删除未使用的因子水平scales = "free"
:
library(dplyr)
library(ggplot2)
set.seed(1234)
value <- sample(20:80, 1000, replace = T)
group <- sample(c("A1", "A2", "B1", "B2", "C1", "C2"), 1000, TRUE)
df <- as.data.frame(cbind(value, group))
df <- df %>%
mutate(value = as.numeric(value),
type = ifelse(grepl("*2", group),"Group 2", "Group1"),
)
ggplot(df, aes(x=value, y =group))+
geom_boxplot() +
xlim(0, 100) +
facet_wrap(~type, dir="v", scales = "free")
由reprex 包(v0.3.0)于 2020-09-11 创建
推荐阅读
- angular - 如何使用 For 循环发出多个 HTTP 请求?打字稿
- python - 用于从 txt.file 中排除某些短语的正则表达式
- node.js - node.js - node-fetch 在收到 cookie 时返回 null
- reactjs - 无法解决strict-origin-when-cross-origin。反应 + AdonisJS
- python - 数据框 csv 文件的一半缺少列
- gitlab - 将脚本移动到 gitlab-ci.yml 中的单独文件中以避免代码重复并将其包含在多个文件中
- python - Pandas DataFrame 中的乳胶公式
- vb.net - Streamwriter:在同一行上写入两个列表框
- javascript - 我如何同步这 3 个基于 promise 的函数?
- r - 模拟 rbinom 100,000 次并找到比例