You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建澳大利亚专属热力地图?R语言实现方案问询

澳大利亚热力地图实现方案

方法一:基于现有代码裁剪地图聚焦澳大利亚

不用更换包,直接对现有世界地图数据做筛选+坐标轴范围限制,就能放大澳大利亚区域:

  1. 筛选mapdata中的澳大利亚地图数据,只保留澳大利亚的多边形
  2. 通过xlim和ylim限定坐标轴范围,聚焦澳大利亚本土
  3. 保持原有热力点绘制逻辑不变

修改后的代码如下:

# 加载所需包
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包,它能直接获取国家/地区的高精度矢量地图:

  1. 先安装并加载rnaturalearth和rnaturalearthdata包
  2. 直接获取澳大利亚的地图数据
  3. 结合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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:18:39