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

使用scale_fill_gradient2()绘制地图时配色不符问题求助

解决ggplot2中scale_fill_gradient2()颜色显示异常的问题

问题原因

你遇到的颜色显示错误,核心是参数使用错误:scale_fill_gradient2()中,mid是用来设置中间位置的颜色,而指定渐变中间数值阈值的参数是midpoint。你错误地把中间数值10.8传给了mid参数,ggplot会把这个数值当作颜色代码解析,导致颜色映射逻辑混乱,最终出现不符合预期的红色。

另外,代码中缺少states数据集的加载步骤,这也会导致后续的left_join操作失败,间接影响地图渲染。

修正后的代码

library(tidyverse)
library(maps)
library(ggmap)  

# 加载states数据集(替换为你的实际文件路径或读取方式)
states <- read.csv("states_map.csv")

state_map <- map_data("state") %>% 
  left_join(states, by = "region")

state_map %>% 
  ggplot(aes(long, lat, group = group)) +
  geom_polygon(aes(fill = water_land), color = "white") + # 添加白色边界区分州
  scale_fill_gradient2(
    low = "#BC9354", 
    high = "#243292", 
    midpoint = 10.8, # 正确指定渐变中间数值阈值
    mid = "#FFFFFF" # 可选:设置中间位置的颜色,不需要可省略
  ) +
  theme_void() + # 更适合地图的主题,移除多余元素
  theme(legend.position = "none")

关键修正点

  1. 参数修正:将mid = 10.8改为midpoint = 10.8,明确指定颜色渐变的中间数值节点。
  2. 数据集加载:补充states数据集的读取步骤,确保left_join能正常关联数据。
  3. 优化地图显示:添加color = "white"给多边形加边界,使用theme_void()简化地图主题,提升可读性。

内容的提问来源于stack exchange,提问作者Ali Osman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:20:10