如何保持ggplot2中"net“在dataset中的顺序?目前,它是按字母顺序绘制的。我需要在图中从下到上依次为非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")
发布于 2020-07-10 15:09:22
使用
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()
https://stackoverflow.com/questions/62829003
复制相似问题