1. 程式人生 > >三、R語言視覺化--ggplot2和REmap包繪製地圖

三、R語言視覺化--ggplot2和REmap包繪製地圖

繪製地圖

1.ggplot2提供了一些工具,讓使用maps包繪製的地圖與其他ggplot2圖形的結合變得十分方便。關於中國地圖的繪製可以參考:http://cos.name/2009/07/drawing-china-map-using-r/

國家maps地圖資料名

法國

義大利

紐西蘭

美國(郡)

美國(州)

美國(邊界)

全世界

france

italy

nz

country

state

usa

world

我們使用地圖資料主要有兩種原因:1.為空間資料新增參考輪廓線2.通過不同的區域填充顏色以構建等值線圖。

新增地圖邊界可以通過borders()來完成。函式的前兩個引數指定了要繪製的地圖名map以及其中的具體區域region,其餘的引數用於控制邊界的外觀。填充顏色的多邊形使用的是fill。

1234library(maps)data(us.cities)> big_citi <- subset(us.cities,pop > 500000)  ##人口大於50萬的城市qplot(long,lat,data=big_citi) + borders("state",size=0.5)

  

12> tx_city <- subset(us.cities,country.etc=="TX")ggplot(tx_city,aes(long,lat)) + borders("county","texas",colour="grey70") + 
geom_point(colour = "black",alpha=0.5)

  德克薩斯州的城市區劃:

使用map_data將地圖資料轉化為資料框,此資料框可以在之後通過merge() 操作與我們的資料相融合,最終繪製處等值線圖。

123456789> states <- map_data("state")> arrests <- USArrestsnames(arrests) <- tolower(names(arrests))> arrests$region <- tolower(rownames(USArrests))> choro <- 
merge(states,arrests,by="region")#由於繪製多邊形時涉及順序問題,且merge破壞了原始排序,故將行重新排序> choro <- choro[order(choro$order),]qplot(long,lat,data=choro,group=group,fill=assault,geom="polygon")

  

#######################華麗的分割線############################

接下來簡單介紹一下中國地圖的繪製。

首先要成功安裝好兩個包:

12install.packages("maps")install.packages("mapdata")

  然後載入:

12library(maps)library(mapdata)

  載入成功後我們可以使用map方法繪製中國地圖:

1map("china")

  

以上的地圖比較老了(重慶仍然在四川省內),獲取比較新的,下載中國GIS資料(http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip),解壓到我的文件中(預設的R工作空間),然後下載maptools包:install.packages("maptools"),載入到R的工作空間:library(maptools),然後繪製地圖:

12> x <- readShapePoly('bou2_4p.shp')plot(x)

  

通過調節plot命令中的col(舊版為fg)引數來根據自己的需要對地圖中的省份著以特定的顏色。

GIS資料包含925個多邊形,col引數應該時一個長度為925的向量,第i個分量的取值就代表了地圖中第i個多邊形的顏色:

1plot(x,col=gray(924:0/924))

  

在地圖中只畫出部分省份所代表的區域:

1234567

相關推薦

R語言視覺--ggplot2REmap繪製地圖

繪製地圖1.ggplot2提供了一些工具,讓使用maps包繪製的地圖與其他ggplot2圖形的結合變得十分方便。關於中國地圖的繪製可以參考:http://cos.name/2009/07/drawing-china-map-using-r/國家maps地圖資料名法國義大利紐西蘭美國(郡)美國(州)美國(邊界)

R語言視覺——REmap動態地圖

作者簡介Introduction杜雨:EasyCharts團隊成員,R語言中文社群專欄作者。興趣

R語言 視覺】我教你15分鐘學會用R畫各種統計圖

data:2015-10-17 author:laidefa 有同學讓我開始教他R語言,就先分享點東西把。學習R的曲線是陡峭的,有人教你才是正道,沒人教你你至少要安靜學習三個月甚至遠遠不止,才會駕輕

R語言視覺R語言畫愛心圖

數學系也可以很浪漫~~ rm(list=ls()) library(grid) heart <- function(lcolor){ t=seq(0, 2*pi, by=0.1) x=

NLP︱詞向量經驗總結(功能作用高維視覺R語言實現大規模語料延伸拓展)

R語言由於效率問題,實現自然語言處理的分析會受到一定的影響,如何提高效率以及提升詞向量的精度是在當前軟體環境下,比較需要解決的問題。 筆者認為還存在的問題有: 1、如何在R語言環境下,大規模語料提高執行效率? 2、如何提高詞向量的精度,或者說如何衡量詞向

91R語言編程基礎

nts log bank user spa ont 對象 bin 排列 1、查看當前工作空間 > getwd() [1] "C:/Users/P0079482.HHDOMAIN/Documents" > 2、查看內存中有哪些對象 > ls() [

R語言基礎-數組列表

ray post size com lis tom 維數 三維數組 數據類型 數組(array) 一維數據是向量,二維數據是矩陣,數組是向量和矩陣的直接推廣,是由三維或三維以上的數據構成的. 數組函數是array(),語法是:array(dadta, dim),當

面向對象——1-類對象

align this -a tro str 定義 p s 面向對象 style 1-類和對象 1.定義類 2.對象的產生和使用 3.對象、引用和指針 4.this三、面向對象——1-類和對象

6R語言繪制帶errorbar 的柱狀圖

label lines arp erro 技術 html ide mage name 轉載:http://www.cnblogs.com/xudongliang/p/7283733.html data <- data.frame(mean = c(10, 15),

類模型-應用設計原則設計模式

信用卡 動態 衡量 跟著 定義 判斷 類關系 購物 png 精雕細琢,設計良好的類與類關系 【設計原則】 無論項目開發流程用哪種模式,瀑布、叠代、螺旋、敏捷等。只要是面向對象設計,都應該應用設計原則以提高設計質量 設計SOLID原則: 1.設計原則有什麽用? 設計

11C語言之結構體共用體

結構體數組 結構體 float add font sco 規則 student mon 一、結構體   結構體:是一種自定義的構造數據類型   用途:把不同類型的數據組合成一個整體。     結構體類型定義:     struct [結構體名]    {       類型識

R語言視覺化作圖筆記(1)

R語言ggplot2與plotly的基本介紹 ggplot2 以R包自帶的資料mpg為例 library(ggplot2) data0 <- mpg ggplot(data = data0,mapping = aes(x=displ))+ geom_density()

R語言視覺化作圖筆記(2.1)

MDS 的 Shepard plot 比較多維度資料分析(multidimensional scaling,MDS)的好壞可用Shepard plot【不知道怎麼翻譯】展示。作圖後,折線越趨近於一條平滑的斜線表明MDS降維的效果越好。 R程式碼: library(MASS) libr

Java記憶體模型---重排序順序一致性

3.2 重排序 重排序是指編譯器和處理器為了優化程式效能而對指令序列進行重新排序的一種手段。 3.2.1 資料依賴性 如果兩個操作訪問同一個變數,且這兩個操作中有一個為寫操作,此時這兩個操作之間 就存在資料依賴性。資料依賴分為下列3種類型,如表3-4所示。 上面3種情況,只

比較分析C++JavaPythonR語言的面向物件特徵,這些特徵如何實現的?有什麼相同點?

一門課的課後題答案,在這裡備份一下: 面向物件程式設計語言 –  比較分析C++、Java、Python、R語言的面向物件特徵,這些特徵如何實現的?有什麼相同點? C++ 語言的面向物件特徵: 物件模型:封裝 (1)  訪問控制機制: C++提供完善的訪問控制機制,分別是: p

R語言學習-第課-R語言與MATLAB程式設計比較

求餘 y = 5 ;  x = 2;  y%%x = 1; matlab    mod(y,x); R    y%%x; 取行數 matlab  size(m,1); R    nrow(m); 重複矩陣 1 2 3

Elastic Stack實戰學習教程~日誌資料的收集分析與視覺

Elastic Stack介紹 近幾年,網際網路生成資料的速度不斷遞增,為了便於使用者能夠更快更精準的找到想要的內容,站內搜尋或應用內搜尋成了不可缺少了的功能之一。同時,企業積累的資料也再不斷遞增,對海量資料分析處理、視覺化的需求也越來越高。 在這個領域裡,開源專案ElasticSearch贏得了市場的關

步搭建Python視覺開發環境

我也隨波逐流來學習Python,畢竟我那麼喜歡爬蟲技術,工欲善其事必先利其器,所以先給搭建個舞臺。 一、 下載PyCharm 官網:https://www.jetbrains.com/pycharm/download/#section=windows

PYTHON 學習筆記之 join split 函式用法

python join 和 split方法的使用,join用來連線字串,split恰好相反,拆分字串的。 1.join用法示例  >>>li = ['my','name','is