如何创建澳大利亚专属热力地图?R语言实现方案问询
澳大利亚热力地图实现方案
方法一:基于现有代码裁剪地图聚焦澳大利亚
不用更换包,直接对现有世界地图数据做筛选+坐标轴范围限制,就能放大澳大利亚区域:
- 筛选
mapdata中的澳大利亚地图数据,只保留澳大利亚的多边形 - 通过
xlim和ylim限定坐标轴范围,聚焦澳大利亚本土 - 保持原有热力点绘制逻辑不变
修改后的代码如下:
# 加载所需包 library(ggplot2) library(mapdata) # 示例澳大利亚经纬度数据(替换成你的数据) lon <- c(151.2093, 144.9631, 138.6007, 153.0281) lat <- c(-33.8688, -37.8136, -34.9285, -27.4698) value <- c(18, 25, 12, 32) aus_data <- data.frame(lon, lat, value) # 获取世界地图并筛选澳大利亚区域 world_map <- map_data("world") aus_map <- subset(world_map, region == "Australia") # 绘制聚焦澳大利亚的热力图 ggplot() + # 绘制澳大利亚地图 geom_polygon(data = aus_map, aes(x = long, y = lat, group = group), fill = "white", color = "grey") + # 绘制热力点 geom_point(data = aus_data, aes(x = lon, y = lat, fill = value), size = 6, shape = 21, color = "black") + # 设置颜色渐变 scale_fill_gradient(low = "#f7fbff", high = "#de2d26") + # 限定坐标轴范围,聚焦澳大利亚 xlim(110, 155) + ylim(-45, -10) + # 添加标签 labs(x = "经度", y = "纬度", title = "澳大利亚热力地图示例") + # 去掉背景网格,让地图更清晰 theme_minimal()
方法二:使用专业地理包获取高精度澳大利亚地图
如果需要更精细的澳大利亚地图(比如包含州界),可以用rnaturalearth包,它能直接获取国家/地区的高精度矢量地图:
- 先安装并加载
rnaturalearth和rnaturalearthdata包 - 直接获取澳大利亚的地图数据
- 结合ggplot2绘制热力图
代码示例:
# 安装包(首次运行需要) # install.packages(c("rnaturalearth", "rnaturalearthdata", "ggplot2")) # 加载包 library(ggplot2) library(rnaturalearth) library(rnaturalearthdata) # 示例澳大利亚数据 lon <- c(151.2093, 144.9631, 138.6007, 153.0281) lat <- c(-33.8688, -37.8136, -34.9285, -27.4698) value <- c(18, 25, 12, 32) aus_data <- data.frame(lon, lat, value) # 获取澳大利亚高精度地图 aus_map <- ne_countries(country = "australia", returnclass = "sf") # 绘制热力图 ggplot() + # 绘制澳大利亚地图 geom_sf(data = aus_map, fill = "white", color = "grey50") + # 绘制热力点 geom_point(data = aus_data, aes(x = lon, y = lat, fill = value), size = 6, shape = 21, color = "black") + # 设置颜色渐变 scale_fill_gradient(low = "#f7fbff", high = "#de2d26") + # 添加标签 labs(x = "经度", y = "纬度", title = "澳大利亚高精度热力地图") + theme_minimal()
额外提示
- 如果需要显示澳大利亚的州界,可以用
ne_states(country = "australia", returnclass = "sf")替换ne_countries获取州级地图 - 热力点的
size和shape可以根据数据量调整,确保点不重叠且清晰可见
内容的提问来源于stack exchange,提问作者gimmethedata123
相关产品推荐
相关产品推荐

