r - 订购堆积条形图ggplot2的“填充”
问题描述
有没有办法让我通过变量 The_Number_Of_Evaders 来订购我的堆叠条形图,而不必手动输入我想要的级别?
The_Number_Of_Evaders <- c(287, 76, 237, 44, 249, 149, 3)
The_Results_Of_Using_The_Line <- c('Allied servicemen reached Spain through the Pyrenees', 'Civilians reached Spain through the Pyrenees',
'Airmen who were arrested during their evasion', 'Airmen who were handed over to other evasion lines',
'Airmen who were kept in camps of the "Operation Marathon" in France and Belgium',
'Airmen who were hidden by their lodgers until Liberation',
'Airmen who were killed during their evasion')
Line <- rep("Comete", 7)
Comete_Line <- data.frame(The_Number_Of_Evaders, The_Results_Of_Using_The_Line, Line)
Comete_Line_Ordered <- Comete_Line[order(Comete_Line$The_Number_Of_Evaders),]
Comete_Line_Ordered %>%
ggplot(aes(x = Line, y = The_Number_Of_Evaders, fill = The_Results_Of_Using_The_Line)) +
geom_bar(stat = "identity", width = 0.5)
解决方案
尝试其中一个选项。您可以reorder()
使用fill
:
library(ggplot2)
library(dplyr)
#Code 1
Comete_Line %>% ggplot(aes(x = Line,
y = The_Number_Of_Evaders,
fill = reorder(The_Results_Of_Using_The_Line,-The_Number_Of_Evaders))) +
geom_bar(stat = "identity", width = 0.5)+
labs(fill='Var')
输出:
或这个:
#Code 2
Comete_Line %>% ggplot(aes(x = Line,
y = The_Number_Of_Evaders,
fill = reorder(The_Results_Of_Using_The_Line,The_Number_Of_Evaders))) +
geom_bar(stat = "identity", width = 0.5)+
labs(fill='Var')
输出: