以前有過一段時間,特別熱衷於數據地圖,也分享不少篇關於地圖製做的教程(涉及到各類做圖軟件),但大可能是整理拼湊,本身發揮的很少。微信
最近在看哈德利.威科姆的那本火遍全球的R語言數據可視化經典教程——《ggplot2——數據分析與圖形藝術》。書內雖然關於數據地圖的內容不多,可是ggplot所滲透的可視化圖層理念實在讓人歎爲觀止。函數
書中徹底將複雜的地圖圖表語言拆解成常規圖表思惟,經過圖層疊加、分組填色、空間映射,讓我對地圖這種深度可視化形式有了更多深刻的理解。網站
今天這一篇主要分享美國地圖的繪圖代碼,一樣是咱們以前分享世界地圖、中國地圖時的代碼(局部地方有小改動)。spa
以前遲遲沒有找到好用的美國全境的地理信息數據,最近終於在某網站上找到了。(雖然R語言的Map包中存有能夠用的美國地圖,可是本身仍是喜歡用自定義方式來作)。.net
平臺環境:
excel
R x64 3.31/Rstudio 0.99.903/ggplot2 2.1.0blog
關於包的安裝及加載更新問題,昨天的教程已經講得很清楚了。教程
如下是代碼步驟:ci
一、加載代碼運行所需的環境包element
library(ggplot2)
library(plyr)
library("maptools")
二、讀取並轉化美國各州地理信息數據(該數據會共享在魔方學院的QQ羣裏)
American_map <-readShapePoly("C:/rstudy/USA_map/STATES.SHP") #將地理信息數據導入R環境
x <- American_map@data #讀取行政信息
xs <- data.frame(x,id=seq(0:50)-1) #共51個形狀
American_map1 <- fortify(American_map) #轉化爲數據框
American_map_data <- join(American_map1, xs, type = "full") #合併兩個數據框
三、讀取業務指標數據(該文件也會打包分享)
該數據文件是.CSV格式的,能夠用excel直接打開替換指標數據便可,而後另存爲.CSV格式。
mydata <- read.csv("C:/rstudy/USA_map/USA_data.csv")#讀取業務指標數據,csv格式
四、將地理數據與業務指標數據合併爲做圖數據(數據框)
American_data <- join(American_map_data, mydata, type="full") #合併兩個數據框
五、地圖映射代碼(ggplot2包所支持的ggplot函數,感興趣能夠自行探索,若不感興趣,直接忽略跑代碼便可)。
ggplot(American_data, aes(x = long, y = lat, group = group,fill = Sale)) +
geom_polygon(colour="grey40") +
scale_fill_gradient(low="white",high="steelblue") + #指定漸變填充色,可以使用RGB
coord_map("polyconic") + #指定投影方式爲polyconic,得到常見視角美國地圖,如要得到平面視角地圖,此句可省略
theme( #清除不須要的元素
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.position = c(0.1,0.3)
)
帶空間投影方式的美國地圖全境:
如下是刪除coord_map("polyconic")字句後的地圖映射效果:
其中填充的顏色漸變能夠經過scale_fill_gradient(low="white",high="steelblue")參數修改;
各州區域輪郭線能夠經過geom_polygon(colour="grey40")參數修改;
填充數據指標能夠經過fill = Sale參數修改;
因爲美國州較多,州名不便所有標出,因此以上不含各州標籤。
魔方學院QQ羣:
QQ羣:
微信羣:
本文分享自微信公衆號 - 數據小魔方(datamofang)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。