r - 如何在 ggplot2 条形图中保留组的顺序?
问题描述
如何在数据集中保留 ggplot2 中“网络”的顺序?目前,它按字母顺序绘制。我需要非 LTE > LTE > 混合 > 5G 从下到上顺序在图中。
df1 <- data.frame(product = c("A","A","A","A","B","B","C","C","C","C","D","D", "D"),
net =c("5G", "Mixed", "LTE", "Non-LTE", "Mixed", "LTE", "5G", "Mixed", "LTE", "Non-LTE", "5G", "Mixed", "LTE"),
value = c(33.74, 21.62, 24.44, 20.20, 4.70, 95.30, 41.82, 39.60, 13.98, 4.61, 0.20, 0.20, 99.60))
color <- c('5G' = '#778899',
'Mixed' = '#3CB371',
'LTE' = '#58595b',
'Non-LTE' = '#9ACD32')
library(ggplot2)
plot1 <- ggplot(df1, aes(y = value, x = product, fill = net, label = paste0(value,"%"))) + geom_col() + scale_fill_manual(values= color) + geom_text(size = 4, position = position_stack(vjust = 0.5), color = "white")
解决方案
利用
color <- c('5G' = '#778899',
'Mixed' = '#3CB371',
'LTE' = '#58595b',
'Non-LTE' = '#9ACD32')
library(ggplot2)
df1$net <- factor(df1$net, levels = c("Non-LTE", "LTE", "Mixed", "5G"))
ggplot(df1, aes(y = value, x = product, fill = net, label = paste0(value,"%"))) +
geom_col() +
scale_fill_manual(values= color) +
geom_text(size = 4, position = position_stack(vjust = 0.5), color = "white") +
scale_y_reverse()
推荐阅读
- firebase - Firestore 中的数字分页
- angular - 类型'typeof observable angular 8 上不存在属性'throwerror'
- java - 使用 OpenCV 在 Android Studio 应用程序中获取 jpg 文件的路径以制作 Mat
- node.js - 用 Alexa 数数
- angular - 最初加载远程数据时 Angular 组件出现问题
- javascript - 如何使用 addDynamicMarker 将添加的自定义 html 附加到 ace 编辑器行?
- regex - java - 如何使用Regex在Java中用空字符串替换单个字符并用单个字符替换双倍?
- c++ - Visual Studio 2019 无法识别#include
- regex - 删除行尾字符的正则表达式
- swift - Swift:消失数组内容的神秘案例