ggplot——绘制地图 上篇

参考文章
https://blog.youkuaiyun.com/weixin_41929524/article/details/82810965
https://www.cnblogs.com/skyme/p/5182149.html

人口数据来源:http://www.stats.gov.cn/
地理坐标数据:http://www.chjunda.com/htdocs/gnjw/ningxia.htm

首先调用绘制中国地图需要的两个包以及ggplot2包
library(maps)
library(mapdata)
library(ggplot2)
运行一行代码便可以很方便的就绘制出中国地图
map(“china”, col = “red4”,xlim=c(70,140),ylim=c(0,60), panel.first = grid())
文章中通常不只是单纯的需要一幅地图,还需要添加其他数据,比如样地图等。那么如何绘制一幅添加其他数据的地图呢?接下来我们使用ggplot()进行图形绘制。

  1. 使用geom_path()函数生成中国地图轮廓
  2. 使用geom_point()函数将散点点在地图上,使用大小表示人口的大小
  3. 使用geom_text()函数添加城市的名称
  4. 使用theme()函数进行图形修饰

代码
library(openxlsx)
df <- read.xlsx(“Population.xlsx”,sheet = 1)
attach(df)
china <- map(“china”,plot=F)
ggplot()+
geom_path(data=china,aes(long,lat,group=group),color = ‘#FD9FA4’,show.legend = F) +
geom_point(data = df, aes(x = longitude, y = latitude,size=population), alpha = 0.8, color = ‘blue’) +
geom_text(data = df, aes(x = longitude, y = latitude, label = name), family = “STHeiti”) +
labs(x = ‘经度’, y = ‘纬度’, title = ‘中国31个省人口地图’, size = ‘人口’) +
theme_bw() +
theme(panel.border = element_blank(),
text = element_text(family = “STHeiti”),
plot.title = element_text(hjust = 0.5))

在这里插入图片描述先不写了,大老板要找我谈话了,紧张紧张。

回来接着写啦——下面我们来修饰图形
原代码:
p<-p+ggplot()+
geom_path(data=china,aes(long,lat,group=group),color = ‘#FD9FA4’,show.legend = F) +
geom_point(data = df, aes(x = longitude, y = latitude,size=population), alpha = 0.8, color = ‘blue’) +
geom_text(data = df, aes(x = longitude, y = latitude, label = name), family = “STHeiti”) +
labs(x = ‘经度’, y = ‘纬度’, title = ‘中国31个省人口地图’, size = ‘人口’) +
theme_bw() +
theme(panel.border = element_blank(),
text = element_text(family = “STHeiti”),
plot.title = element_text(hjust = 0.5))

1.添加横纵坐标名称和图的名称
#方法一
p <- p+labs(x = ‘经度’, y = ‘纬度’, title = ‘中国31个省人口地图’, size = ‘人口’)
#方法二
p <- p+xlab(“经度”) + ylab(“纬度”) + ggtitle(“中国31个省人口地图”)
2.添加legend的名称
p <- p + guides(fill=guide_legend(title=“Legend_Title”))
3.设置范围
#方法一
p + scale_x_continuous(limits = c(70,140))+scale_y_continuous(limits = c(0,60))
#方法二
p + xlim(70,140)+ylim(0,60)
4.修改横轴和纵轴
p+theme(axis.title= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))
5.仅修改横轴x
p+theme(axis.title.x= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))
6.仅修改纵轴y
p+theme(axis.title.y= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))
7.修改图片title
p+theme(title= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))
8.修改图例legend
p+theme(legend.text= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))

输出最后代码以及图片

ggplot()+
geom_path(data=china,aes(long,lat,group=group),color = ‘#FD9FA4’,show.legend = F) +
geom_point(data = df, aes(x = longitude, y = latitude,size=population), alpha = 0.8, color = ‘blue’) +
geom_text(data = df, aes(x = longitude, y = latitude, label = name), family = “STHeiti”) +
labs(x = ‘Longitude’, y = ‘Latitude’, title = ‘Population map of 31 provinces in china’, size = ‘population’) +
theme_bw() +
theme(panel.border = element_blank(),
text = element_text(family = “STHeiti”),
plot.title = element_text(hjust = 0.5))+theme(legend.position=c(0.9,0.5))+
theme(axis.text.x= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))+
theme(axis.text.y= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))+
theme(axis.title= element_text(size=18, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))+
theme(legend.text= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))+
theme(legend.title= element_text(size=18, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))+
theme(title= element_text(size=15, family=“myFont”, color=“black”, face= “bold”, vjust=0.5, hjust=0.5))
在这里插入图片描述
**参考文章:**http://blog.sina.com.cn/s/blog_4a0824490102w4jm.html

要用R语言绘制世界地图并上色,可以使用R的一个非常流行的包——`ggplot2`和`maps`。下面是一个简单的示例代码,演示如何使用这两个包绘制世界地图并上色。 首先,需要安装`ggplot2`和`maps`包: ```R install.packages("ggplot2") install.packages("maps") ``` 然后,加载这两个包: ```R library(ggplot2) library(maps) ``` 接下来,使用`map_data()`函数从`maps`包中获取世界地图数据: ```R world_map <- map_data("world") ``` 然后,可以使用`ggplot()`函数创建一个空白的地图。在这里,我们使用`world_map`数据集中的`long`和`lat`列来绘制地图: ```R ggplot() + geom_polygon(data = world_map, aes(x = long, y = lat, group = group)) ``` 这将绘制一个空白的世界地图。 接下来,假设我们有一个数据集,其中包含每个国家的值。我们可以使用`merge()`函数将该数据集与`world_map`数据集合并: ```R # 创建一个包含各个国家值的数据集 country_values <- data.frame( country = c("China", "United States", "Russia", "Brazil", "India"), value = c(10, 20, 30, 40, 50) ) # 将该数据集与世界地图数据集合并 world_map_values <- merge(world_map, country_values, by = "region") ``` 现在,我们可以使用`ggplot()`函数和`geom_polygon()`函数来绘制带有颜色的地图。在这里,我们使用`value`列来确定每个国家的颜色: ```R ggplot() + geom_polygon(data = world_map_values, aes(x = long, y = lat, group = group, fill = value)) ``` 这将绘制一个带有颜色的世界地图,其中每个国家都根据其值上色。 最后,可以使用`scale_fill_gradient()`函数来设置颜色渐变: ```R ggplot() + geom_polygon(data = world_map_values, aes(x = long, y = lat, group = group, fill = value)) + scale_fill_gradient(low = "white", high = "red", na.value = "gray50") ``` 这将绘制一个带有颜色渐变的世界地图,其中颜色从白色到红色变化,缺失值将用灰色表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值