我正面临箱线图问题,具有以下数据集
我应用的代码如下
它只显示了一个变量的图,我想同时使用food2和food3等其他两个变量。这样我们将有6个箱型图。
boxplot(bxplot$food1~bxplot$groupss)
希望我已经正确解释了我的问题。
谢谢
@Usman-希望这会有所帮助。如果将as.factor
用作变量groupss
,则应根据需要获得6个箱型图:
library(reshape2)
library(ggplot2)
dat.m <- melt(df,id.vars='groupss',measure.vars=c('food1','food2','food3'))
p <- ggplot(dat.m,aes(x=as.factor(groupss),y=value,color=variable)) +
geom_boxplot()
p
如上所述,您可以将列groupss
更改为因子本身,如下所示:
dat.m$groupss <- as.factor(dat.m$groupss)
我使用的是最新的reshape2
,而不是tidyr
,它是pivot_longer
的替代品。这将完成同一件事:
melt
编辑:如果您希望在x轴上显示food1,food2和food3,并且对于这3个,分别为组1和2设置2个箱形图,则可以执行以下操作:
library(tidyr)
dat.m2 <- df %>%
pivot_longer(cols = starts_with("food"),names_to = "food",values_to = "value")
p <- ggplot(dat.m2,color=food)) +
geom_boxplot()
p
或对于p <- ggplot(dat.m,aes(x=variable,color=as.factor(groupss))) +
geom_boxplot()
版本:
pivot_longer