【发布时间】:2015-01-16 10:28:52
【问题描述】:
我有一些如下所示的数据。我的目标是为它们生成堆积条形图,但我需要将值显示为百分比。我已经设法将数据融合到正确的形状并绘制堆叠条,但值远远超过 100%(在我的实际数据集中,一些值加起来达到 8000+)。设置 ggplot2 以便我可以创建百分比堆积条形图的正确方法是什么?
#Raw Data
x A B C
1 5 10 14
1 4 4 14
2 5 10 14
2 4 4 14
3 5 10 14
3 4 4 14
#Aggregate
data < read.table(...);
data <- aggregate(. ~ x, data, sum) #<---- Sum to Average?
x A B C
1 9 14 28
2 9 14 28
3 9 14 28
#Melt Data
data <- melt(data,"x")
x variable value
1 1 A 9
2 2 A 9
3 3 A 9
4 1 B 14
5 2 B 14
6 3 B 14
7 1 C 28
8 2 C 28
9 3 C 28
#Plot stack bar chart counts
ggplot(data, aes(x=1, y=value, fill=variable)) + geom_bar(stat="identity") + facet_grid(.~x)
我希望在融化之前得到这样的东西,这样我就可以融化它并将其绘制为堆积条形图,但我不知道如何处理这个问题。
#Ideal Data Format - After Aggregate, Before Melt
x A B C
1 17.64 27.45 54.90
2 17.64 27.45 54.90
3 17.64 27.45 54.90
问:使用 ggplot2 创建带有百分比的堆积条形图的正确方法是什么?
【问题讨论】:
-
你要使用
facet_grid(.~x)吗?