我想使用此数据框的geom_bar()创建并排的barplot,

> dfp1
   value   percent1   percent
1 (18,29] 0.20909091 0.4545455
2 (29,40] 0.23478261 0.5431034
3 (40,51] 0.15492958 0.3661972
4 (51,62] 0.10119048 0.1726190
5 (62,95] 0.05660377 0.1194969

将x轴上的值和百分比作为并排条形图。我尝试使用此代码,
p = ggplot(dfp1, aes(x = value, y= c(percent, percent1)), xlab="Age Group")
p = p + geom_bar(stat="identity", width=.5)

但是,我收到此错误:错误:美学必须为长度1,或与dataProblems:value相同的长度。我的percent和percent1与value的长度相同,因此感到困惑。谢谢您的帮助。

最佳答案

您需要先通过melt对数据进行value。默认情况下,它将创建另一个名为value的变量,因此您需要将其重命名(我称之为percent)。然后,使用fill绘制新数据集以将数据分成几组,然后使用position = "dodge"绘制条形并排(而不是彼此重叠)

library(reshape2)
library(ggplot2)
dfp1 <- melt(dfp1)
names(dfp1)[3] <- "percent"
ggplot(dfp1, aes(x = value, y= percent, fill = variable), xlab="Age Group") +
   geom_bar(stat="identity", width=.5, position = "dodge")

关于r - ggplot并排geom_bar(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25070547/

10-11 04:29