首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为ggplot中的不同列值并排放置的多个框图

为ggplot中的不同列值并排放置的多个框图
EN

Stack Overflow用户
提问于 2015-08-20 02:52:59
回答 3查看 30.3K关注 0票数 10

我读过不同的帖子,比如thisthis,但我的问题有一个很小的变化。我有一个这样的df

代码语言:javascript
复制
ID <- c("DJ45","DJ46","DJ47","DJ48","DJ49","DJ53","DJ54","DJ55","DJ56","DJ57")
Tool <- c("Tool_A", "Tool_A", "Tool_A", "Tool_A", "Tool_A", "Tool_B", "Tool_B", "Tool_B", "Tool_B", "Tool_B")
Name <- c("CMP", "CMP", "CMP", "CMP", "CMP", "CMP", "CMP", "CMP", "CMP", "CMP")
MS1 <- c(51,55,50,59,50,47,48,42,43,46)
MS2 <- c(13,11,14,11,10,17,18,17,20,21)
MS3 <- c(2,3,2,5,6,4,9,6,4,4)
MS4 <- c(16,13,14,11,16,16,18,16,19,15)
MS5 <- c(3,6,3,6,3,4,4,8,5,4)
MS6 <- c(7,7,5,5,8,9,8,6,6,9)

df1 <- data.frame(ID,Tool,Name,MS1,MS2,MS3,MS4,MS5,MS6)

我试图找出工具(Tool_A和Tool_B)在不同测量步骤上的统计差异,因此我做了一个t检验。

代码语言:javascript
复制
t.test(MS1 ~ Tool, df1)

为了实现可视化,我使用ggplot绘制了boxplot,但在这里我只完成了其中的一个步骤。

代码语言:javascript
复制
p <- ggplot(df1, aes(factor(Tool), MS6))
p + geom_boxplot(aes(fill = Tool)) + labs(title = "CMP")

我想通过将所有6个测量步骤的框图并排放置在一个通用标题(CMP)下包装所有内容。facet_wrap能做到这一点吗?我就是不能把它弄对。请提供建议。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-20 03:07:30

你的问题是你需要一个很长的格式来做facet_wraps。

代码语言:javascript
复制
#first, reshape to long
library(reshape2)

df1_long <- melt(df1, id.vars=c("ID","Tool","Name"))

#then plot
p2 <- ggplot(df1_long, aes(x=factor(Tool),y=value,fill=factor(Tool)))+
  geom_boxplot() + labs(title="CMP") +facet_wrap(~variable)
p2

票数 13
EN

Stack Overflow用户

发布于 2015-08-20 03:09:51

您也可以在没有facet_wrap的情况下完成,如下所示:

代码语言:javascript
复制
library(reshape2)

df2<-melt(df1,id.var=c("ID","Tool","Name"))

p <- ggplot(df2, aes(variable, value,fill=Tool))
p + geom_boxplot() + labs(title = "CMP")

票数 11
EN

Stack Overflow用户

发布于 2019-11-19 23:54:40

您还可以使用Tidyr包中的gather函数对数据进行整形:

代码语言:javascript
复制
library(tidyr)

df1 %>% 
  gather(MS, value, MS1, MS2, MS3, MS4, MS5, MS6) %>% 
  ggplot(aes(x = factor(Tool), y = value, fill = factor(Tool)))+
  geom_boxplot()+
  facet_wrap(~MS)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32103434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档