我有这些数据:
> result_Q1_data
HARM TYPE
834 96979 TORNADO
130 8428 EXCESSIVE HEAT
856 7461 TSTM WIND
170 7259 FLOOD
464 6046 LIGHTNING
275 3037 HEAT
153 2755 FLASH FLOOD
427 2064 ICE STORM
760 1621 THUNDERSTORM WIND
972 1527 WINTER STORM
我想制作一个条形图。我正在使用这个命令:
qplot(TYPE,HARM,data=result_Q1_data,stat="identity",geom="bar", fill=EVTYPE)
并获取此plot
如何绘制相同的绘图,其中数据在绘图上会减少,并且x轴上没有单词或者它们是垂直的? (我还不擅长英语,对不起解释感到抱歉)
答案 0 :(得分:4)
我建议你使用ggplot函数,但是如果你想使用qplot。您需要重新排序因子TYPE的级别并删除x轴的标签。
result_Q1_data = data.frame(
'id' = c(834, 130, 856, 170, 464, 275, 153, 427, 760, 972),
'HARM' = c(96979, 8428, 7461, 7259, 6046, 3037, 2755, 2064, 1621, 1527),
'TYPE' = factor(c('TORNADO', 'EXCESSIVE HEAT', 'TSTM WIND', 'FLOOD', 'LIGHTNING',
'HEAT', 'FLASH FLOOD', 'ICE STORM', 'THUNDERSTORM WIND',
'WINTER STORM')))
result_Q1_data$TYPE = factor(result_Q1_data$TYPE,
levels = result_Q1_data$TYPE[order(result_Q1_data$HARM, decreasing=T)])
qplot(TYPE,HARM,data=result_Q1_data,stat="identity",geom="bar", fill=TYPE) +
theme(axis.ticks = element_blank(), axis.text.x = element_blank())
答案 1 :(得分:1)
我会使用ggplot
而不是qplot
命令。您可以对ggplot
函数中的条形图进行重新排序:
ggplot(result_Q1_data, aes(x=reorder(TYPE,-HARM), y=HARM, fill=reorder(TYPE,-HARM))) +
geom_bar(stat="identity") +
theme(axis.text.x=element_text(angle=45, vjust=0.5))
给出: