R 如何使用ggplot绘制堆叠条形图?

R 如何使用ggplot绘制堆叠条形图?,r,statistics,ggplot2,R,Statistics,Ggplot2,我已经阅读了第页提供的示例,但由于某种原因,无法找到正确的方法 我有一些数据如下: Group Member Percentage [1,] "1" "A" "60" [2,] "1" "A" "20" [3,] "1" "A" "20" [4,] "1" "B" "80" [5,] "1" "B" "5" [6,] "1" "B" "5"

我已经阅读了第页提供的示例,但由于某种原因,无法找到正确的方法

我有一些数据如下:

      Group Member Percentage
 [1,] "1"   "A"    "60"      
 [2,] "1"   "A"    "20"      
 [3,] "1"   "A"    "20"      
 [4,] "1"   "B"    "80"      
 [5,] "1"   "B"    "5"       
 [6,] "1"   "B"    "5"       
 [7,] "1"   "B"    "5"       
 [8,] "2"   "C"    "50"      
 [9,] "2"   "C"    "50"      
[10,] "2"   "D"    "25"      
[11,] "2"   "D"    "25"      
[12,] "2"   "D"    "25"      
[13,] "2"   "D"    "20"      
[14,] "2"   "D"    "5"   
可以使用以下命令创建和:

a = c(1,1,1,1,1,1,1,2,2,2,2,2,2,2)
b = c("A","A","A","B","B","B","B","C","C","D","D","D","D","D")
c = c(60,20,20,80,5,5,5,50,50,25,25,25,20,5)
dat = data.frame(Group=a, Member=b, Percentage=c)
ggplot(dat, aes(x=Member, y=Percentage)) + geom_bar(stat="identity", position="dodge", fill="white", colour="black")
最后一行给出了以下曲线图:

我真正想要的是将一个组中的每个条连接到一个单独的条,并将百分比表示为同一条的分数(其中每个组中的每个成员都用一个条绘制,每个条都有百分比作为其颜色)。因此,我使用了以下方法:

ggplot(dat, aes(x=Member, y=Percentage)) + geom_bar(stat="identity", colour="white")
并得出如下结论:

但是现在我不能正确地得到颜色。我想要的东西与下面给出的一模一样,但我无法理解如何做到这一点。有什么建议吗


好的,终于拿到了!万岁!以下是其他人感兴趣的完整代码:

a = c(1,1,1,1,1,1,1,2,2,2,2,2,2,2)
b = c("A","A","A","B","B","B","B","C","C","D","D","D","D","D")
c = c(60,20,20,80,5,5,5,50,50,25,25,25,20,5)
dat = data.frame(Group=a, Member=b, Percentage=c)
ggplot(dat, aes(x=Member, y=Percentage, fill=Percentage)) + geom_bar(stat="identity", colour="white")

还有@joran(非常感谢!)在评论中提出的建议:

ggplot(dat, aes(x=Member, y=Percentage, fill=Percentage)) + geom_bar(stat="identity", colour="white")
你很接近了。试一试

ggplot(dat, aes(x=Member, y=Percentage, fill = factor(Percentage))) + geom_bar(stat = "identity")
产生


@gsk3:虽然我没有使用
position=“stack”
,但经过一些实验,我还是成功地做到了这一点。我不知道有什么区别。最好是限制ggplot使用有限的颜色,而不是每找到一个新百分比就使用一种颜色。做得好!我正要发布这篇文章……请注意,如果您想要百分比上的离散色标,而不是连续色标,只需使用
fill=factor(Percentage)
+1哦,太好了!我正在寻找这个版本!不过我可以取消一个更好的配色方案。需要对此进行更多探索。作为一个稍微无关的问题,您是否碰巧知道如何将图例右侧的
因子(百分比)
文本更改为其他内容?当然,
+labs(fill=“fill label”)
+1谢谢您!刚刚用@joran的评论更新了我的答案。我想再调整一下,这些图就会看起来很棒。