R语言绘制中国地图,增加指北针、比例尺和九段线区域小图

  1. 地图数据获得
    链接:https://pan.baidu.com/s/1JKD3IUONtKGO5tXMVBrTyA
    提取码:data

  2. 绘制地图

# 数据读入
library(sf)
library(ggspatial)
library(ggplot2)
library(cowplot)
library(colorspace)
# 读入地图绘制数据,这里是各个地区的污染物浓度,需要包含geometry格式数据
df = read.csv('G:/Desktop/data_map.csv', encoding='UTF-8')
df = st_as_sf(df, wkt='geometry', crs=4326)
# 读入中国区县分布数据
china = sf::read_sf('G:/Desktop/中国省级地图GS(2019)1719号.geojson')
# 读入九段线数据
nine_lines = sf::read_sf('G:/Desktop/九段线GS(2019)1719号.geojson')

# 绘制中国地图
fig=ggplot() +
    geom_sf(data=china, fill='NA', size=0.5, color='grey') + # 中国地图轮廓
    geom_sf(data = df,aes(color=PM25), size=1) + # 九段线轮廓
    scale_color_continuous_sequential(palette = "YlOrRd", rev = T, name=expression('PM'[2.5]*'浓度(ug/m'^3*')')) + # 地区污染物分布数据,设置配色板
    coord_sf(ylim = c(-2387082,1654989), crs='+proj=laea +lat_0=40 +lon_0=104') + #截取中国地图,不在大图上显示九段线区域
    # 添加比例尺
    annotation_scale(location='bl') +
    # 添加指北针
    annotation_north_arrow(location='tl', which_north='false',
                           style=north_arrow_nautical()) +
    # 设置大图边框
    theme(rect=element_blank(),
          panel.background=element_blank(),
          panel.grid=element_blank(),
          axis.line=element_blank(),
          axis.text=element_blank(),
          axis.ticks=element_blank(),
          legend.key.size = unit(10, "pt"),
          legend.title = element_text(size = 9))

# 绘制九段线小图
nine_map = ggplot() +
    geom_sf(data = china,fill='NA', size=0.5) + 
    geom_sf(data = nine_lines,color='black',size=0.5)+
    coord_sf(ylim = c(-4028017,-1877844),xlim = c(117131.4,2115095),crs="+proj=laea +lat_0=40 +lon_0=104")+
    theme(
        aspect.ratio = 1.25, #调节长宽比
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        panel.grid = element_blank(),
        panel.background = element_blank(),
        panel.border = element_rect(fill=NA,color="grey10",linetype=1,size=0.5),
        plot.margin=unit(c(0,0,0,0),"mm"))

# 使用cowplot包将大图小图拼在一起
fig = ggdraw() +
    draw_plot(fig) +
    draw_plot(nine_map, x = 0.8, y = 0, width = 0.13, height = 0.39)

# 保存图片为png格式
png('G:/Desktop/PM25分布图.png',bg="transparent",
    width = 1200, height = 800, res=200)

# 显示图片(必需)
fig
# 关闭画框(必需)
dev.off()

实例
在这里插入图片描述

  • 13
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
### 回答1: ArcGIS是一种常用的地理信息系统软件,它允许用户进行二次开发来满足不同的需求。在进行ArcGIS二次开发时,可以通过插入指北针比例尺和图例来增强地图的可视化效果。 插入指北针是为了让用户了解地图的方向。对于插入指北针的操作,可以通过以下步骤来实现: 1. 打开ArcGIS软件并载需要插入指北针地图。 2. 在布局视图中,点击“插入”选项卡,在“图形”组中选择“指北针”。 3. 在地图上选择一个合适的位置,然后用鼠标绘制指北针的形状。 4. 在“格式”选项卡中对指北针进行进一步的设置,例如调整指北针的大小、颜色和风格。 5. 完成设置后,保存并关闭指北针面板。 比例尺可以帮助用户了解地图上不同距离与实际距离之间的关系。插入比例尺的操作步骤如下: 1. 在布局视图中,点击“插入”选项卡,在“图形”组中选择“比例尺”。 2. 在地图上选择一个适合的位置绘制比例尺的形状。 3. 在“格式”选项卡中,可以调整比例尺的大小、单位和显示样式等。 4. 完成设置后,保存并关闭比例尺面板。 图例是用来解释地图上所显示的符号和颜色所代表的内容。插入图例的操作步骤如下: 1. 在布局视图中,点击“插入”选项卡,在“图形”组中选择“图例”。 2. 在地图上选择一个适合的位置绘制图例的形状。 3. 在弹出的图例编辑器中,选择需要在图例中显示的图层和符号。 4. 可以对图例进行更进一步的设置,例如调整图例的大小、样式和布局。 5. 完成设置后,保存并关闭图例面板。 通过以上步骤,我们可以在ArcGIS的地图上插入指北针比例尺和图例,以增强地图的可视化效果,并帮助用户更好地理解地图中的信息。 ### 回答2: 在ArcGIS二次开发中,要插入指北针比例尺和图例,可以参考以下步骤: 1. 首先,创建一个地图文档(map document)对象,通过该对象可以地图数据、添图层等操作。 2. 在地图文档中添指北针(north arrow)元素。可以使用ArcMap中提供的指北针符号,也可以自定义指北针符号。可以设置指北针的位置、大小、样式等属性。 3. 添比例尺(scale bar)元素。比例尺会根据地图的显示比例自动调整长度,可以设置比例尺的位置、样式、单位等属性。 4. 添图例(legend)元素。图例可以显示地图中的图层及其符号样式,用于解释地图中各个图层的内容。可以设置图例的位置、大小、标题等属性。 5. 最后,将以上三个元素添地图文档中。可以通过指定的坐标位置,将指北针比例尺和图例元素插入到地图中的合适位置。 需要注意的是,以上步骤涉及到ArcGIS开发的一些特定的API和对象。可以使用ArcObjects或ArcGIS API for Python等工具进行开发。具体的代码实现可以参考ArcGIS开发文档和示例。 ### 回答3: 在ArcGIS二次开发中,如果需要插入指北针比例尺或图例,可以通过以下步骤进行实现。 首先,准备好指北针比例尺和图例需要的相关资源文件,包括图片、文字等。 其次,在ArcGIS二次开发的环境中,可以使用ArcObjects、ArcPy或ArcGIS API等进行开发。具体选择哪一种方法取决于开发者的个人偏好和具体需求。 对于插入指北针,可以使用指北针组件或工具。根据指北针的样式和位置,可以设置相关属性,如指北针的大小、旋转角度等。同时,可以将指北针地图或布局关联起来,确保指北针的显示与地图的方向一致。 对于插入比例尺,可以使用比例尺组件或工具。根据比例尺的样式和位置,可以设置相关属性,如比例尺的单位、长度等。同时,可以将比例尺地图或布局关联起来,确保比例尺的显示与地图的比例一致。 对于插入图例,可以使用图例组件或工具。根据图例的样式和位置,可以设置相关属性,如图例的布局方式、图例项的内容等。同时,可以将图例与地图或布局关联起来,确保图例的显示与地图的内容一致。 最后,根据开发需要,将插入指北针比例尺和图例的代码嵌入到ArcGIS二次开发的程序中,并进行编译和运行。可以通过调用相关函数或方法来实现插入指北针比例尺和图例的操作。 总之,通过ArcGIS二次开发,可以轻松实现插入指北针比例尺和图例的功能,并根据具体需求进行灵活的定制和调整。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值