千家信息网

怎么用R语言可视化填充地图

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍"怎么用R语言可视化填充地图",在日常操作中,相信很多人在怎么用R语言可视化填充地图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用R语言可视化填充
千家信息网最后更新 2025年02月03日怎么用R语言可视化填充地图

这篇文章主要介绍"怎么用R语言可视化填充地图",在日常操作中,相信很多人在怎么用R语言可视化填充地图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用R语言可视化填充地图"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

今天跟大家介绍REmap函数家族中的第三个函数--REmapC。

REmapC函数允许我们同时在一张地图上制作填充图和点图、线图。

library(REmap)

library(baidumap)

?remapC

remapC(data,

maptype = 'china',

markLineData = NULL,

markPointData = NULL,

color = c('#1e90ff','#f0ffff'),

theme = get_theme("Bright"),

title = "",

subtitle = "",

markLineTheme = markLineControl(),

markPointTheme = markPointControl(),

geoData = NA,

mindata = NA,

maxdata = NA)

四个主要参数说明:

参数一:data为需要的原始数据框格式数据,共2列,第一列为省份或者城市名称,第二列为对应的数值,数值大小将决定地图颜色深浅。

参数二:maptype为地图类型设置,可选world、china或者中国省份名称

参数三:color为热力图渐变颜色,默认为2个颜色,第一个为终止色,第二个为初始色。如果只有一个颜色,系统会自动以白色补充为初始铯色。

参数四:mindata与maxdata可以设置颜色极端点对应数据的上下限(默认是使用data中的数据最大值最小值作为两端极值)。

一、全国热力图

首先利用mapnames函数提取全国各省份名称:

province <- mapNames("china") #全国省份

value <- rnorm(34,100,30) #随机生成分省值

mydata <- data.frame(province,value) #合成数据框作图数据

remapC(mydata,color=c("yellow","red"),title="全国分省热地图",subtitle="我是副标题") #制作热力图


默认的颜色标度是从最小值到最大值。以上函数中省略了markLineData,markPointData 两个参数,所以并未显示点线图。

ad_ln <- mapNames("liaoning")

[1] "大连市" "朝阳市" "丹东市" "铁岭市" "沈阳市" "抚顺市" "葫芦岛市" "阜新市" "锦州市"

[10] "鞍山市" "本溪市" "营口市" "辽阳市" "盘锦市"

value_ln<-rnorm(14,100,30)

data_ln <-data.frame(ad_ln,value_ln)

ad_ln value_ln

1 大连市 79.67630

2 朝阳市 41.93198

3 丹东市 173.31586

4 铁岭市 106.01990

5 沈阳市 119.40256

6 抚顺市 79.54820

7 葫芦岛市 155.62993

8 阜新市 122.99599

9 锦州市 94.17395

10 鞍山市 82.18944

11 本溪市 98.70972

12 营口市 115.59957

13 辽阳市 104.89199

14 盘锦市 92.92975

map_out <- remapC(data_ln,

maptype = "liaoning",

color=c("green"),

title="辽宁省热力地图",

theme = get_theme("Sky"),

maxdata=180

)

plot(map_out)



接下来做一个案例:

每年春运,广东省人口会大批回流原住地,形成壮观的春运人流大军,我们模拟出广东省回流各省的人口数,使用填色地图表示人流规模,使用动态流向线表示回流最大的前10个省份。

因为没有实际的数据,这里我用函数模拟数据(非真实数据):

province <- mapNames("china") #全国省份

value <- round(rnorm(34,1000,30),0) #随机生成分省值

mydata <- data.frame(province,value) #合并数据

labelper<-mydata[order(mydata[,"value"],decreasing=T),][1:10,]

origin<-rep("广州",length(labelper))

destination<-labelper$province

line_data<-data.frame(origin,destination)

map_out1 <- remapC(mydata,

maptype = "china",

title="人口迁徙地图",

theme = get_theme("Drak"),

color=c("#CD0000","#FFEC8B"),

markLineData=line_data,

markLineTheme=markLineControl(

color="white",

lineWidth=2,

lineType="dashed"

),

markPointData=line_data[2],

markPointTheme=markPointControl(

symbolSize=13,

effect=T,

effectType="scale",

color="white"

)

)

plot(map_out1)

因为假设广东是人口迁出地,给广东填色是没有任何意义的,所以mydata数据中需要忽略 广东的数据

mydata1 <- mydata[-12,]

map_out2 <- remapC(mydata1,

maptype = "china",

title="人口迁徙地图",

theme = get_theme("Drak"),

color=c("#CD0000","#FFEC8B"),

markLineData=line_data,

markLineTheme=markLineControl(

color="white",

lineWidth=2,

lineType="dashed"

),

markPointData=line_data[2],

markPointTheme=markPointControl(

symbolSize=13,

effect=T,

effectType="scale",

color="white"

)

)

plot(map_out2)


到此,关于"怎么用R语言可视化填充地图"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0