箱线图显示不正确
Boxplot not displaying correctly
我遇到箱形图问题,有以下数据集
dataset
我应用的代码如下
</p>
<p>boxplot(bxplot$food1~bxplot$groupss)
它只显示一个变量的图,我想使用其他两个变量以及 food2 和 food3。这样我们就有了 6 个箱线图。
希望我已经正确解释了我的问题。
谢谢
@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)
我使用最新的 tidyr
而不是 reshape2
,它有 pivot_longer
替代 melt
。这将完成同样的事情:
library(tidyr)
dat.m2 <- df %>%
pivot_longer(cols = starts_with("food"), names_to = "food", values_to = "value")
p <- ggplot(dat.m2, aes(x=as.factor(groupss), y=value, color=food)) +
geom_boxplot()
p
编辑:如果您希望在 x 轴上有 food1、food2 和 food3,并且对于这 3 个中的每一个,有 2 个箱线图用于第 1 组和第 2 组,您可以执行以下操作:
p <- ggplot(dat.m, aes(x=variable, y=value, color=as.factor(groupss))) +
geom_boxplot()
或 pivot_longer
版本:
p <- ggplot(dat.m2, aes(x=food, y=value, color=as.factor(groupss))) +
geom_boxplot()
我遇到箱形图问题,有以下数据集
dataset
我应用的代码如下
</p>
<p>boxplot(bxplot$food1~bxplot$groupss)
它只显示一个变量的图,我想使用其他两个变量以及 food2 和 food3。这样我们就有了 6 个箱线图。
希望我已经正确解释了我的问题。
谢谢
@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)
我使用最新的 tidyr
而不是 reshape2
,它有 pivot_longer
替代 melt
。这将完成同样的事情:
library(tidyr)
dat.m2 <- df %>%
pivot_longer(cols = starts_with("food"), names_to = "food", values_to = "value")
p <- ggplot(dat.m2, aes(x=as.factor(groupss), y=value, color=food)) +
geom_boxplot()
p
编辑:如果您希望在 x 轴上有 food1、food2 和 food3,并且对于这 3 个中的每一个,有 2 个箱线图用于第 1 组和第 2 组,您可以执行以下操作:
p <- ggplot(dat.m, aes(x=variable, y=value, color=as.factor(groupss))) +
geom_boxplot()
或 pivot_longer
版本:
p <- ggplot(dat.m2, aes(x=food, y=value, color=as.factor(groupss))) +
geom_boxplot()