R语言中ggplot绘制地图,保持x、y轴的比例一致: coord_fixed() 选项

 

001、

# 加载必要的包
library(ggplot2)
library(scatterpie)
library(maps)

# 取世界地图
world <- map_data("world")

# 模拟三个地点的数据(经纬度 + 三种成分)
df <- data.frame(
  lon = c(100, 120, 140),
  lat = c(30, 35, 40),
  A = c(0.4, 0.3, 0.6),
  B = c(0.3, 0.4, 0.2),
  C = c(0.3, 0.3, 0.2)
)
df
# 定义颜色(自己设置每个部分的颜色)
fill_colors <- c(A = "#FF9999", B = "#99CCFF", C = "#99FF99")

# 开始绘制
ggplot() +
  geom_map(data = world, map = world,
           aes(x = long, y = lat, map_id = region),
           fill = "white", color = "gray70", size = 0.3) +
  geom_scatterpie(
    aes(x = lon, y = lat, group = interaction(lon, lat)),
    data = df,
    cols = c("A", "B", "C"),
    color = NA,        # 给饼图加上黑色边框
    pie_scale = 1            # 饼图大小
  ) +
  scale_fill_manual(values = fill_colors) +  # 手动指定饼图的颜色
  coord_fixed() +                         # 保持X/Y比例
  theme_minimal() +
  theme(
    panel.grid = element_blank(),
    panel.background = element_rect(fill = "white"),
    legend.title = element_blank()
  ) 

 。

 

posted @ 2025-04-26 16:23  小鲨鱼2018  阅读(58)  评论(0)    收藏  举报