我正在努力从数据框中绘制一个箱线图。我的数据框df包含3列:df$A
,df$B
,df$C
。我希望在X轴上有df$C
,并在一个图表中将df$A
和df$B
绘制为Y轴上的箱线图。因此,对于x轴的每个值,它应该是两个值df$A
和df$B
。我希望为X轴的每个值(df$C
)对齐方框。我尝试使用互动功能将(A
,B
)合并到列中,然后将其绘制成如下图:
df$AandB <- interaction(df$A, df$fB)
ggplot(aes(y = AandB, x = df$C), data = df) + geom_boxplot()
但它不起作用。它只显示水平线 - 抱歉我无法上传图像,因为我是新用户。
我发现了一些使用填充或颜色的建议,但它没有用。
有什么建议吗?
我的df样本:
A B C
200.12 30.11 28.75
100.75 26.17 29.98
27.33 25.58 34.98
25.19 22.6 35.56
40.03 21.02 37.51
20.3 18.31 44.75
答案 0 :(得分:1)
数据:
df <- read.table(text="A B C
200.12 30.11 28.75
100.75 26.17 29.98
27.33 25.58 34.98
25.19 22.6 35.56
40.03 21.02 37.51
20.3 18.31 44.75", header = TRUE)
首先,数据需要以长格式排列。 A
和B
的值与reshape2
包合并为一列。
library(reshape2)
df_l <- melt(df, id.vars = "C")
现在,可以创建情节:
library(ggplot2)
ggplot(df_l, aes(x = C, y = value)) +
stat_summary(aes(group = C),
fun.y = mean, fun.ymin = min, fun.ymax = max, geom = "crossbar")
横杆表示数据的范围和平均值。