箱线图中的单独子组
Seperate subgroups in boxplot
我使用箱线图可视化了一些数据。每个变量都属于一个子组,我想 separate/indicate 在箱线图中的这些子组上。要么在每个 'group of variables' 之间创建一个小间隙,要么以某种方式在属于 without 的不同变量上指示使用 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)。
有谁知道如何在不使用 fill = type
的情况下以适当的方式(使用 facet_wrap()
或不使用)在箱线图中指示变量子组?
您可以使用 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 package (v0.3.0)
于 2020-09-11 创建
我使用箱线图可视化了一些数据。每个变量都属于一个子组,我想 separate/indicate 在箱线图中的这些子组上。要么在每个 'group of variables' 之间创建一个小间隙,要么以某种方式在属于 without 的不同变量上指示使用 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)。
有谁知道如何在不使用 fill = type
的情况下以适当的方式(使用 facet_wrap()
或不使用)在箱线图中指示变量子组?
您可以使用 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 package (v0.3.0)
于 2020-09-11 创建