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

为多组y值绘制不同连续颜色刻度(ggplot2)

为两组散点设置独立连续颜色刻度的解决方案

ggplot 默认在同一张图里只能使用一组连续颜色尺度,所以你直接叠加两个 geom_point 会导致它们共用同一套色标。要实现两组独立的连续颜色刻度,推荐使用 ggnewscale 包来添加额外的颜色尺度。

步骤1:安装并加载所需包

install.packages("ggnewscale")
library(ggplot2)
library(ggnewscale)

步骤2:使用 ggnewscale 绘制双刻度散点图

ggplot(cdep_ex2, aes(x = Value)) +
  # 第一组:ssp1 的散点及对应颜色刻度
  geom_point(aes(y = ssp1, colour = ssp1), size = 3) +
  scale_colour_viridis_c(name = "SSP1 数值", option = "mako") +
  
  # 开启新的颜色尺度,重置颜色映射
  new_scale_colour() +
  
  # 第二组:ssp3 的散点及对应颜色刻度
  geom_point(aes(y = ssp3, colour = ssp3), size = 3, shape = 17) +
  scale_colour_viridis_c(name = "SSP3 数值", option = "plasma") +
  
  theme_minimal() +
  labs(y = "数值")

代码说明

  • new_scale_colour() 是核心函数,它会让 ggplot 重新初始化颜色尺度,确保后续图层使用独立的颜色映射和刻度。
  • 你可以用 scale_colour_gradient、scale_colour_distiller 等自定义色阶,这里选用的 viridis 色系对色盲友好,视觉区分度高。
  • 给两组点设置不同形状(比如圆形和三角形),能进一步避免颜色混淆,提升数据可读性。

运行代码后,图右侧会生成两个独立的颜色刻度条,分别对应 ssp1 和 ssp3 的数值范围,每组点的颜色会基于各自的数值区间完成映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:18:13