[英]How do you plot multiple columns of a data frame all within the same boxplot in r (using ggplot2)?
我有一个看起来像这样的数据框:
Train_Table_Time_Power <- data.frame(
Mean = runif(100),
STD = runif(100),
Kurt = runif(100),
Skew = runif(100),
TI = sample(c("0.05", "0.10", "0.15", "0.20"), 10, replace = TRUE)
)
然后,我使用以下代码为倾斜特征创建了一个框:
Skew_BoxPlot <- ggplot(Train_Table_Time_Power, aes(x = TI, y = Skew, color = TI)) +
geom_boxplot(notch = T, id=TRUE) +
stat_summary(fun = mean, geom="point", shape=19, color="red", size=2) +
geom_jitter(shape=16, position = position_jitter(0.2), size = 0.3) +
labs(title = "Crest_Time", x = "TI", y = "Normalized Magnitude") +
theme_minimal() + theme_Publication()
上面的方框 plot 显示了随着 TI 特性的变化,Skew 特性的不同分布。 但是,我现在想创建一个新框 plot,它仅显示一个 TI 值(例如 TI = 0.05)的所有特征(均值、STD、Kurt 和偏斜)的分布,我希望该图为 plot所有框 plot 水平分布在同一图表上,彼此相邻。 谁能指导我如何最好地做到这一点?
您可以将您的数据转换成一个长表,然后 plot。 使用 tidyverse 可以轻松完成
library(tidyverse)
Train_Table_Time_Power %>% filter(TI == 0.05) %>%
pivot_longer( cols=1:4) %>%
ggplot(aes(x=name, y=value)) + geom_boxplot()
您可以将TI == 0.05
更改为您想要的任何值,或者您可以执行所有 TI 值并使用facet_grid()
拆分单个图
Train_Table_Time_Power %>% pivot_longer( cols=1:4) %>%
ggplot(aes(x=name, y=value)) + geom_boxplot() +facet_grid(~TI)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.