作為任何有多地區(qū)業(yè)務(wù)的公司,如果能在地圖上展示業(yè)績(jī),是一件多么酷的事情,下面上圖片。

這張圖展現(xiàn)的是江蘇某行的存款規(guī)模,越紅說明越高,蘇州是第一梯隊(duì),南京,無錫市第二梯隊(duì),徐州、南通、常州是第三梯隊(duì),其他慘白的都是蘇北地區(qū),是第四梯隊(duì)。當(dāng)然數(shù)據(jù)方面我進(jìn)行了加工,與真實(shí)數(shù)據(jù)還是有出入的,只是做個(gè)范例。
R語言制作圖表的步驟很簡(jiǎn)單,一般無非是以下流程,很多人想不明白為什么必須要用R語言來畫圖,有兩個(gè)優(yōu)點(diǎn):1、可以畫一些excel無法畫的圖,如地圖等,2、可以自動(dòng)作圖,每次把數(shù)據(jù)更新一下,無論是文本,還是表格的格式,運(yùn)行程序就可以一鍵生成。
第一步:導(dǎo)入必用包,不管什么包,我一般全部默認(rèn),否則有時(shí)就會(huì)出些莫名其妙的報(bào)錯(cuò),原則是“不管白包黑包,只要能畫圖就是好包”,“少一包不如多一包”。CA=windowsFont("微軟雅黑")定義自己喜歡的字體。
setwd("c:/r/map/")
library(ggplot2)
library(sp)
library(maptools)
library(mapproj)
library(maps)
windowsFonts(CA=windowsFont("微軟雅黑"))
第二步:讀入地圖數(shù)據(jù)信息,這邊導(dǎo)入的是到地市的中國地圖SHP文件,我們想展現(xiàn)的是江蘇部分,需要篩出來,這樣我們用江蘇的地區(qū)代碼32,為什么是32呢,想想江蘇同學(xué)的身份證開頭吧,所以要篩到那個(gè)層級(jí)就看身份證開頭,到南京的話就篩選3201。前面在某文章看到復(fù)雜的篩選方法,還要反查代碼,還是覺得我這個(gè)取巧辦法好。
china_shp<-readShapePoly("STATE_poly")
jiangsu<-china_shp[substr(as.character(china_shp$ADCODE99), 1, 2) == "32",]
jiangsu1<-fortify(jiangsu)
第三步:讀取業(yè)務(wù)信息:zhibiao.csv是各市對(duì)應(yīng)指標(biāo),city.csv是每塊地市圖的中心坐標(biāo)及地市名稱。
myepidat = data.frame(id = unique(sort(jiangsu1$id)))
tmp = read.csv("zhibiao.csv")
myepidatzhibiao=tmpzhibiao
city <- read.csv("city.csv")
第四步:畫出精美圖形,先畫地圖的底圖,再加上地市名稱,再根據(jù)指標(biāo)情況涂上深淺顏色。
p<-ggplot(myepidat)
p<-p+geom_map(aes(map_id = id, fill =zhibiao),color="pink3", map = jiangsu1)
p<-p+geom_point(aes(x=long,y=lat),color="red",data=city)
p<-p+geom_text(aes(x =long,y = lat+0.15,label = city),data = city,color="black",size=4,family="CA")
p<-p+scale_fill_gradient(high = "red",low = "white")
p<-p+expand_limits(x=jiangsu1
long,y=jiangsu1lat)+coord_map()
p<p+theme(panel.grid=element_blank(),panel.background=element_blank(),axis.text=element_blank(),








暫無數(shù)據(jù)