最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

R繪制漂亮的中國(guó)地圖的實(shí)現(xiàn)示例

 更新時(shí)間:2021年09月16日 11:58:54   作者:Kanny廣小隸  
本文主要介紹了R繪制漂亮的中國(guó)地圖的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

ggmap

說(shuō)起用R繪制中國(guó)地圖,很多有經(jīng)驗(yàn)的老司機(jī)肯定會(huì)推薦ggmap,無(wú)論是里面自帶的各種地區(qū)繪圖、經(jīng)緯度查詢以及可以與ggplot無(wú)縫銜接繪制地區(qū)統(tǒng)計(jì)圖,這都是R中其它繪制地圖所難以超越的優(yōu)勢(shì)。

但奈何R經(jīng)常無(wú)法獲取ggmap里面的地圖。當(dāng)我想導(dǎo)入中國(guó)地圖時(shí),就會(huì)出現(xiàn)如下圖所示的問(wèn)題。

報(bào)錯(cuò)信息

由于數(shù)模所需,為了硬著頭皮進(jìn)行繪制,哪怕丑一些,所以探索出了下面兩種繪制中國(guó)地圖的方法。

maps + mapdata

這種方式繪制中國(guó)地圖非常的簡(jiǎn)單,只需要一行代碼(注意要先調(diào)用兩個(gè)R包maps, mapdata):

map("china", col = "red4", ylim = c(18, 54), panel.first = grid())

便可以得到如下圖所示的繪制結(jié)果。

但這幅圖只是一幅單純的中國(guó)地圖,如果我們想要插入部分城市的人口數(shù)據(jù)以及其它信息,該如何添加呢?(數(shù)據(jù)來(lái)源:2015-2016年中國(guó)城市人口數(shù)量排名)

首先來(lái)看看我們的數(shù)據(jù)信息(代碼有點(diǎn)丑,不要在意這些細(xì)節(jié)):

beijing = c('北京&天津', 39.90419989999999, 116.4073963, 1961.24 + 1293.82)
shanghai = c('上海', 31.2303904, 121.4737021, 2301.91)
zhengzhou = c('鄭州', 34.7472541716, 113.6249284647, 862.65)
wulumuqi = c('烏魯木齊', 43.8266013700, 87.6168405804, 311.03)
haerbin = c('哈爾濱', 45.8021755616, 126.5358247345, 1063.6)
xian = c('西安', 34.3412614674, 108.9398165260, 846.78)
wuhan = c('武漢', 30.5927599029, 114.3052387810, 978.54)
chengdu = c('成都', 30.5702183724, 104.0647735044, 1404.76)
lasa = c('拉薩', 29.6441135160, 91.1144530801, 55.94)
chongqing = c('重慶', 29.5647048135, 106.5507137149, 2884.62)
kunming = c('昆明', 24.8796595146, 102.8332118852, 643.2)
guangshen = c('廣州&深圳', 23.0206747828, 113.7517837567, 1270.08 + 1035.79)

cities = c(beijing, shanghai, zhengzhou, wulumuqi, haerbin, xian, wuhan,
           chengdu, lasa, chongqing, kunming, guangshen)
mat.cities = as.data.frame(matrix(cities, ncol = 4, byrow = T), stringsAsFactors = F)
names(mat.cities) = c('names', 'lat', 'long', 'population')
mat.cities$population = as.numeric(as.character(mat.cities$population)) / 100
mat.cities$lat = as.numeric(as.character(mat.cities$lat))
mat.cities$long = as.numeric(as.character(mat.cities$long))

具體操作其實(shí)也非常簡(jiǎn)單:使用for循環(huán)搭配基礎(chǔ)的points()函數(shù),使用如下所示的代碼即可:

map("china", col = "red4", ylim = c(18, 54), panel.first = grid())
for (i in 1:12) {
  points(mat.cities$long[i], mat.cities$lat[i], cex = 1.5, pch = 16)
}
title('Population')

這里應(yīng)該還需要用其它信息來(lái)展現(xiàn)我們的人口數(shù),但是由于這個(gè)繪圖不是很漂亮,所以就不進(jìn)行接下來(lái)的操作了。后面介紹一個(gè)更漂亮的繪制人口地圖的方法——ggplot + mapdata。

ggplot2 + mapdata

話不多說(shuō),直接用我們前面生成的數(shù)據(jù)進(jìn)行繪制。這里講一下大概的流程:

同上一種方式,利用map()函數(shù)產(chǎn)生中國(guó)地圖的輪廓(如果能上google,使用ggmap當(dāng)然更好)。

使用ggplot進(jìn)行繪圖:

  • 使用geom_path()函數(shù)將我們生成的中國(guó)地圖的輪廓繪制出來(lái),這里修改顏色,選擇清新自然的粉色;
  • geom_point()將各個(gè)城市的位置用散點(diǎn)點(diǎn)上,同時(shí)點(diǎn)的大小表示人口的多少,這里用清新藍(lán);
  • geom_text()在每個(gè)點(diǎn)上添加上城市的名稱;
  • 修改各個(gè)標(biāo)簽以及各種title的名稱;
  • 進(jìn)行修改主題、Mac上顯示中文字等操作。
china <- map("china", plot = F)
ggplot() + 
  geom_path(data = china, aes(long, lat, group = group), color = '#FD9FA4', show.legend = F) +
  geom_point(data = mat.cities, aes(x = long, y = lat, size = population), alpha = 0.8, color = '#8BB6D6') +
  # geom_text_repel(data = mat.cities, aes(x = long, y = lat, label = names), family = "STHeiti") +
  geom_text(data = mat.cities, aes(x = long, y = lat, label = names), family = "STHeiti") +
  labs(x = '經(jīng)度', y = '緯度', title = '中國(guó)十二個(gè)地區(qū)人口地圖', size = '人口(百萬(wàn))') + 
  theme_bw() +
  theme(panel.border = element_blank(),
        text = element_text(family = "STHeiti"),
        plot.title = element_text(hjust = 0.5))

產(chǎn)生出來(lái)的圖像如下圖所示:

人口圖1

這樣的圖已經(jīng)基本算作是能看的了,但這并不是強(qiáng)迫癥患者所最終追求的繪圖。其美中不足的是每個(gè)城市的名稱覆蓋在我們的散點(diǎn)上了。

通常我們的做法非常簡(jiǎn)單,在geom_text()中設(shè)置參數(shù),將所有的文字向上下左右選一個(gè)方向,防止覆蓋。這樣做當(dāng)然沒(méi)問(wèn)題,這里介紹另一種方法,可以進(jìn)行自適應(yīng)調(diào)整以防覆蓋。

ggrepel

我們的做法是使用ggrepel包中的geom_text_repel()函數(shù)替換掉我們?cè)镜?code>geom_text(),細(xì)心的同學(xué)已經(jīng)發(fā)現(xiàn),這就是我們上面代碼注釋掉的部分。這時(shí)只需將其封印解除,同時(shí)封印住geom_text()這個(gè)小頑皮,我們的繪圖就大功告成了!

人口地圖2

到此這篇關(guān)于R繪制漂亮的中國(guó)地圖的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)R繪 中國(guó)地圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語(yǔ)言gsub替換字符工具的具體使用

    R語(yǔ)言gsub替換字符工具的具體使用

    這篇文章主要介紹了R語(yǔ)言gsub替換字符工具的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語(yǔ)言ggplot2包之注釋方式

    R語(yǔ)言ggplot2包之注釋方式

    這篇文章主要介紹了R語(yǔ)言ggplot2包之注釋方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • R語(yǔ)言符號(hào)知識(shí)點(diǎn)匯總

    R語(yǔ)言符號(hào)知識(shí)點(diǎn)匯總

    在本篇文章里小編給大家整理的是一篇關(guān)于R語(yǔ)言符號(hào)知識(shí)點(diǎn)匯總內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • R語(yǔ)言繪制空間熱力圖實(shí)例講解

    R語(yǔ)言繪制空間熱力圖實(shí)例講解

    這篇文章主要介紹了R語(yǔ)言繪制空間熱力圖實(shí)例講解,圖文實(shí)例講解的很清楚,有感興趣的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • R語(yǔ)言ggplot2包之坐標(biāo)軸詳解

    R語(yǔ)言ggplot2包之坐標(biāo)軸詳解

    這篇文章主要介紹了R語(yǔ)言ggplot2包之坐標(biāo)軸詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • R語(yǔ)言中assign函數(shù)和get函數(shù)的用法

    R語(yǔ)言中assign函數(shù)和get函數(shù)的用法

    這篇文章主要介紹了R語(yǔ)言中assign函數(shù)和get函數(shù)的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 數(shù)模技巧不用for循環(huán)且使用ggplot2實(shí)現(xiàn)地圖上連線

    數(shù)模技巧不用for循環(huán)且使用ggplot2實(shí)現(xiàn)地圖上連線

    這篇文章主要為大家介紹了一個(gè)數(shù)模技巧怎樣使用ggplot2不用for循環(huán)來(lái)實(shí)現(xiàn)地圖上連線,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • R語(yǔ)言ggplot在熱圖上標(biāo)注相關(guān)系數(shù)的操作方法

    R語(yǔ)言ggplot在熱圖上標(biāo)注相關(guān)系數(shù)的操作方法

    R語(yǔ)言是一種開(kāi)源、免費(fèi)的編程語(yǔ)言,主要用于統(tǒng)計(jì)分析、圖形化和機(jī)器學(xué)習(xí),這篇文章主要介紹了R語(yǔ)言ggplot怎么在熱圖上標(biāo)注相關(guān)系數(shù),需要的朋友可以參考下
    2024-07-07
  • R語(yǔ)言 數(shù)據(jù)表匹配和拼接 merge函數(shù)的使用

    R語(yǔ)言 數(shù)據(jù)表匹配和拼接 merge函數(shù)的使用

    這篇文章主要介紹了R語(yǔ)言 數(shù)據(jù)表匹配和拼接 merge函數(shù)的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • R語(yǔ)言編程繪圖箱線圖基本實(shí)例

    R語(yǔ)言編程繪圖箱線圖基本實(shí)例

    使用ggplot2繪制箱線圖的核心函數(shù)是geom_boxplot(),下面通過(guò)示例展示如何用iris數(shù)據(jù)集繪制不同物種(Species)的萼片長(zhǎng)度(Sepal.Length)分布,對(duì)R語(yǔ)言箱線圖相關(guān)知識(shí)感興趣的朋友一起看看吧
    2025-05-05

最新評(píng)論

璧山县| 广水市| 吕梁市| 图片| 图片| 崇义县| 航空| 临海市| 台南县| 博爱县| 嘉峪关市| 边坝县| 南岸区| 台南市| 柘荣县| 陆河县| 确山县| 米脂县| 扬中市| 赤水市| 桑日县| 道孚县| 余江县| 营口市| 中西区| 宁夏| 杂多县| 滦南县| 高清| 化隆| 襄樊市| 常宁市| 长汀县| 泽普县| 石城县| 蓬安县| 左权县| 清远市| 那曲县| 德安县| 新营市|