如何在R中的堆叠条形图中更改堆叠顺序?

李永泰

我有一个像这样的数据集:

> 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)可以,但是“质量”(用于堆叠条形)按字母顺序排列。如何更改堆叠顺序以匹配其原始顺序?而且,如果可能的话,我宁愿手动修改订单

mpalanco

我认为质量是按原始顺序堆叠的:B,F,M等。我想您想更改的是图例的顺序:

ra.melt$quality <- factor(ra.melt$quality, levels = ra$quality)
p <- ggplot(ra.melt, aes(x = variable, y = value))
p + geom_bar(aes(fill = quality), stat = "identity") + 
    labs(x = "group", y = "percentage (%)")

在此处输入图片说明

或以相反的顺序:

ra.melt$quality <- factor(ra.melt$quality, levels = rev(ra$quality))
p <- ggplot(ra.melt, aes(x = variable, y = value))
p + geom_bar(aes(fill = quality), stat = "identity") +  
    labs(x = "group", y = "percentage (%)")

在此处输入图片说明

笔记

图例采用因子的级别,默认情况下按字母顺序排序:

levels(ra.melt$quality)
# Output
 [1] "A"     "B"     "C"     "D"     "E"     "F"     "G"     
     "H"     "I"     "J"     "K"     "L"     "M"     "other"

通过ra.melt$quality <- factor(ra.melt$quality, levels = ra$quality)设置原始向量中出现的因子水平的顺序:

levels(ra.melt$quality)
#Output:
[1] "B"     "F"     "M"     "A"     "G"     "E"     "J"   
    "D"     "C"     "I"     "K"     "L"     "H"     "other"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在R中的同一图中显示并排条形图以及堆叠条形图?

如何在水平堆叠条形图中显示条形值

如何在堆叠条形图中的条形上添加比率

如何在R中的ggplot中更改堆叠条形图的位置?

更改堆叠条形图中的颜色

如何在堆叠的条形图中显示价值总和

如何在覆盖密度线(ggplot2)的堆叠条形图中更改样式设置

在R中的高图条形图中订购堆叠

如何在具有ggplot的R中的多面堆叠条形图中使用不同的geom_text()标签?

如何在 ggplot/R 中按特定顺序制作堆叠条形图,同时保持特定的配色方案?

d3.js堆叠条形图对堆叠中各个值的排序/更改顺序

如何在Matplotlib中的堆叠水平条形图中显示数据值

如何在ggplot中的堆叠条形图中将误差线组织到相关条?

使用R base的堆叠条形图:如何在每个堆叠条形内添加值

如何在直方图中拆分和堆叠条形图,仅填充下部条形图?

如何在堆叠条形图显示中抑制零

如何在保持条形高度的堆叠条形图中添加百分比标签(R plotly)

如何在条形图上堆叠图标?

堆叠条形图中的列顺序与spreadheet相反

R中的堆叠的条形图

如何标准化堆叠条形图中的条形颜色?

如何命名堆叠条形图中的每个条形标签?

R:如何在ggplot中翻转堆叠的并排条形图

如何控制Vega-lite堆叠条形图中的组顺序

按顺序指示在ggplot2中堆叠条形图的y方向上的更改顺序

如何使用ggplot2将图例标题,键顺序和颜色更改为R中的多堆叠条形图

从 dataframe.plot 更改堆叠条形图中的颜色

更改堆叠条形图的打印顺序

如何在matplotlib中获取条形图/堆叠条形图上的标签?