各位老师好:
本人在利用ggplot统计某一业务在各种场景区域的分布,原始数据如下:(以DATA FRAME格式,数据框名字tbn2)
场景 Freq
1 城区道路 0.044992743
2 城中村 0.008708273
3 村庄 0.477503628
4 党政军机关 0.002902758
5 地铁 0.004354136
6 风景区 0.007256894
7 高速公路 0.010159652
8 高校 0.000000000
9 工业园区 0.008708273
10 公园 0.000000000
11 国道省道 0.029027576
12 机场 0.001451379
13 郊区道路 0.033381713
14 近水近海域 0.010159652
15 居民区 0.101596517
16 码头 0.000000000
17 普铁 0.005805515
18 其他 0.002902758
19 企事业单位 0.002902758
20 商业中心 0.001451379
21 未知 0.000000000
22 乡镇 0.227866473
23 写字楼 0.001451379
24 星级酒店 0.008708273
25 休闲娱乐场所 0.002902758
26 医院 0.000000000
27 长途汽车站 0.000000000
28 中小学 0.005805515
本人通过如下语句对各种场景的顺序按照分布比例的大小进行排列
tbn2$场景 <- reorder(tbn2$场景, tbn2$Freq*(-1))
通过调整,了解到“场景”的顺序已经发现变化:
> tbn2$场景
[1] 城区道路 城中村 村庄 党政军机关 地铁 风景区
[7] 高速公路 高校 工业园区 公园 国道省道 机场
[13] 郊区道路 近水近海域 居民区 码头 普铁 其他
[19] 企事业单位 商业中心 未知 乡镇 写字楼 星级酒店
[25] 休闲娱乐场所 医院 长途汽车站 中小学
attr(,"scores")
城区道路 城中村 村庄 党政军机关 地铁 风景区
-0.044992743 -0.008708273 -0.477503628 -0.002902758 -0.004354136 -0.007256894
高速公路 高校 工业园区 公园 国道省道 机场
-0.010159652 0.000000000 -0.008708273 0.000000000 -0.029027576 -0.001451379
郊区道路 近水近海域 居民区 码头 普铁 其他
-0.033381713 -0.010159652 -0.101596517 0.000000000 -0.005805515 -0.002902758
企事业单位 商业中心 未知 乡镇 写字楼 星级酒店
-0.002902758 -0.001451379 0.000000000 -0.227866473 -0.001451379 -0.008708273
休闲娱乐场所 医院 长途汽车站 中小学
-0.002902758 0.000000000 0.000000000 -0.005805515
28 Levels: 村庄 乡镇 居民区 城区道路 郊区道路 国道省道 高速公路 ... 长途汽车站
调整后,输入饼图的制作语句
> pie <- ggplot(tbn2, aes(x = "", y=Freq,fill = factor(场景),label=场景)) + geom_bar(stat="identity",width = 1)
> pie + coord_polar("y",direction=1)
得出的图片如下:
求解:如何能使饼图按照自己设定的level顺序(即图例)进行排列,使得各分块由大到小进行排放?
请各位老师指点,谢谢!