我有这样的一个数据集:
> ra
quality GY TH SZ DZ FP
1 B 25.5932389 23.0215577 21.2171520 23.7548859 19.9848602
2 F 13.9567819 15.8975387 16.0363831 14.4732136 16.4207350
3 M 11.7333000 10.5075000 11.1540000 12.1292000 12.9683000
4 A 8.6439000 7.8888000 8.5094000 10.4722000 11.2059000
5 G 7.8351008 8.8121504 7.9458840 8.0838209 7.5143706
6 E 8.2900000 8.2760000 10.2717000 7.0575000 6.8747000
7 J 6.0596430 6.4356378 5.4962929 5.1445980 5.8653262
8 D 3.8608517 3.9147685 4.1381946 4.1741180 5.5412901
9 C 4.3277000 5.4838000 5.1141000 5.4004000 4.1820000
10 I 3.1710598 3.9339386 3.4053352 3.1940577 3.5347168
11 K 1.2021144 1.3921565 1.8472827 1.4427867 1.3838249
12 L 1.0986329 0.7424060 1.0648934 1.1323864 0.8811604
13 H 0.9369271 0.8795013 0.9792861 0.8986281 0.8585596
14 other 3.2907496 2.8142444 2.8200960 2.6422047 2.7842562
我尝试在R中绘制它:
ra <- read.table("stack_data.txt", header = T)
library(reshape2)
library(ggplot2)
ra.melt <- melt(ra)
head(ra.melt)
# Output
quality variable value
1 B GY 25.593239
2 F GY 13.956782
3 M GY 11.733300
4 A GY 8.643900
5 G GY 7.835101
6 E GY 8.290000
p <- ggplot(ra.melt, aes(x = variable, y = value))
p + geom_bar(aes(fill = quality), stat = "identity") +
labs(x = "group", y = "percentage (%)")
我希望“组”和“质量”能按照原始数据中的确切顺序出现。结果发现,“组”(用作x轴)没问题,但是“质量”(用于堆积条形图)是按字母顺序排列的。如何更改堆叠顺序以匹配其原始顺序?如果可能的话,我希望不手动修改排序。