• R语言
  • 利用ggplot2的bar绘图不能按照数据大小排列,而是按照label的字母顺序排列

数据是这样的:
fata_top15
EVTYPE all.fata
99 EXCESSIVE HEAT 1903
2 TORNADO 1660
20 FLASH FLOOD 978
27 HEAT 937
15 LIGHTNING 816
利用上面数据绘图
ggplot(fata_top15, aes(x=EVTYPE, y=all.fata)) +
geom_bar(stat ="identity",width=0.8)+
theme(axis.text.x = element_text(angle = 45, hjust = 1))

结果绘出的bar图是按照EVTYPE的字母顺序排列的,而不是按照all.fata大小排列。
目标是想要按照all.fata大小排列,求解决 :-)
可以把文件名转化为factor,并固定
fata_top15 <- transform(fata_top15, EVTYPE = factor(EVTYPE, levels = unique(EVTYPE)))
reorder is what you need for this purpose.
ggplot(fata_top15, aes(x=reorder(EVTYPE, all.fata), y=all.fata)) +
geom_bar()