91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言怎么實現地圖上的迷你條形圖

發布時間:2022-03-28 09:58:20 來源:億速云 閱讀:301 作者:iii 欄目:大數據

本篇內容介紹了“R語言怎么實現地圖上的迷你條形圖”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

加載包:

library(maptools)

library(ggplot2)

library(plyr)

library(ggmap)

導入地圖素材及省會城市經緯度數據

china_shp <-readShapePoly("c:/rstudy/bou2_4p.shp")    

china_map <- fortify(china_shp)     

province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") #城市經緯度數據 

#新建三個指標,2015年和2016年的某經濟度量指標(虛構)N15、N16和環比增長率Ratio。

province_city1<-mutate(province_city,N15=runif(34,min=500,max=1000),N16=runif(34,600,1100),Ratio=round((N16-N15)/N15,3))

province_data<-province_city1[sample(nrow(province_city1),10),]

合并后的數據結構如下,隨即選取了10個城市的14、15年度某項經濟指標(虛構)以及同比增長率。

R語言怎么實現地圖上的迷你條形圖

ggplot的現有圖層圖形中是沒有直接根據點坐標生成條形圖、柱形圖的,所以這里我們只能曲線救國,使用線條圖和誤差線來進行模擬。

首先來畫底圖:

ggplot()+

geom_polygon(aes(x=long, y=lat, group=group), data=china_map, fill="white", colour="grey60")

R語言怎么實現地圖上的迷你條形圖

接下來使用geom_linerange函數(也就是條線圖函數)進行各個坐標點的模擬柱形繪制。

線畫出14年的指標值:

ggplot()+

geom_polygon(aes(x=long, y=lat,group=group),data=china_map, fill="white", colour="grey60")+

geom_linerange(data=province_data,aes(x=jd-0.5,ymin=wd,ymax=wd+N15/max(N15,N16)*5),size=5,color="orange",alpha=0.8)

R語言怎么實現地圖上的迷你條形圖

再疊加一次16年的指標值

ggplot()+

geom_polygon(aes(x=long, y=lat,group=group),data=china_map, fill="white", colour="grey60")+

geom_linerange(data=province_data,aes(x=jd-0.5,ymin=wd,ymax=wd+0.7*N15/max(N15,N16)*5),size=3,color="#5B88A0",alpha=0.8)+

geom_linerange(data=province_data,aes(x=jd+0.5,ymin=wd,ymax=wd+0.7*N16/max(N15,N16)*5),size=3,color="#FB882C",alpha=0.8)

R語言怎么實現地圖上的迷你條形圖

接下來我們來對已經塑造好的雙柱條形圖進行美化操作,

windowsFonts(myFont = windowsFont("微軟雅黑")) 

ggplot()+

geom_polygon(aes(x=long, y=lat,group=group),data=china_map, fill="white", colour="grey60")+

geom_linerange(data=province_data,aes(x=jd-0.5,ymin=wd,ymax=wd+0.7*N15/max(N15,N16)*5),size=3,color="#5B88A0",alpha=0.8)+

geom_linerange(data=province_data,aes(x=jd+0.5,ymin=wd,ymax=wd+0.7*N16/max(N15,N16)*5),size=3,color="#FB882C",alpha=0.8)+

geom_text(aes(x=jd,y=wd-0.6,label=paste0(province_data$province,ifelse(Ratio>0,"▲","▼"),Ratio*100,"%")), data=province_data,family="myFont",size=2.5)+

theme_nothing()+

annotate("text", x=105, y=52, label="● 2015", color= "#5B88A0", size=8)+ 

annotate("text", x=105, y=49, label="● 2016", color= "#FB882C", size=8)

R語言怎么實現地圖上的迷你條形圖

其實最初在網上看到該圖(大概是劉萬祥老師的博客,在此感謝老師的啟發),他的做法是使用geom_errbar圖層函數,也就是誤差線圖層函數,其實理念是一致的。這里給出原方法。

ggplot()+

geom_polygon(aes(x=long, y=lat,group=group),data=china_map, fill="white", colour="grey60")+

geom_errorbar(data=province_data,aes(x=jd-0.5,ymin=wd,ymax=wd+0.7*N15/max(N15,N16)*5),size=3,color="#5B88A0",width=0,alpha=0.8)+

geom_errorbar(data=province_data,aes(x=jd+0.5,ymin=wd,ymax=wd+0.7*N16/max(N15,N16)*5),size=3,color="#FB882C",width=0,alpha=0.8)+

geom_text(aes(x=jd,y=wd-0.6,label=paste0(province_data$province,ifelse(Ratio>0,"▲","▼"),Ratio*100,"%")), data=province_data,family="myFont",size=2.5)+

theme_nothing()+

annotate("text", x=105, y=52, label="● 2014", color= "#5B88A0", size=8)+ 

annotate("text", x=105, y=49, label="● 2015", color= "#FB882C", size=8)

R語言怎么實現地圖上的迷你條形圖

其實如果能換個思路,使用geom_errorh函數,想必一定了以做出橫向的條形圖。

ggplot()+

geom_polygon(aes(x=long, y=lat,group=group),data=china_map, fill="white", colour="grey60")+

geom_errorbarh(data=province_data,aes(x=jd,y=wd,xmin=jd-3,xmax=jd+3*N15/max(N15,N16)),size=3,color="#5B88A0",height=0,alpha=0.8)+

geom_errorbarh(data=province_data,aes(x=jd,y=wd-0.8,xmin=jd-3,xmax=jd+3*N16/max(N15,N16)),size=3,color="#FB882C",height=0,alpha=0.8)+

geom_text(aes(x=jd+0.2,y=wd+1,label=paste0(province_data$province,ifelse(Ratio>0,"▲","▼"),Ratio*100,"%")), data=province_data,family="myFont",size=2.5)+

theme_nothing()+

annotate("text", x=105, y=52, label="● 2015", color= "#5B88A0", size=7)+ 

annotate("text", x=105, y=50, label="● 2016", color= "#FB882C", size=7)

R語言怎么實現地圖上的迷你條形圖

“R語言怎么實現地圖上的迷你條形圖”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荃湾区| 晋城| 郁南县| 平顺县| 温泉县| 武山县| 景谷| 兴义市| 内乡县| 临江市| 德令哈市| 天峨县| 扎兰屯市| 玉屏| 宁化县| 木里| 五台县| 古蔺县| 吉木乃县| 谷城县| 华亭县| 朝阳市| 东乡县| 阳江市| 丰都县| 小金县| 曲靖市| 越西县| 盐亭县| 株洲市| 杭州市| 河南省| 建阳市| 盖州市| 错那县| 会东县| 邳州市| 咸阳市| 沁阳市| 玉门市| 福建省|