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

R语言Plotly等高线图多子图共用图例颜色范围异常如何修复

问题原因

你当前的色轴默认仅读取第一个子图的z值范围作为全局刻度,只要显式指定所有子图共用的全局z值上下限即可修复该问题。

修复步骤

  1. 先计算所有5个z矩阵的全局最小值和最大值:
# 整合所有子图的z值计算全局范围
z_all <- c(
  # Baseline的z值
  c(8.8,11.5,20.4,11.4,14.1,23.0,16.8,19.5,28.4),
  # EV Currentgrid的z值
  c(8.2,10.6,18.6,11.0,13.4,21.3,16.7,19.1,27.0),
  # EV Coal的z值
  c(9.6,12.3,21.5,12.9,15.6,24.8,19.6,22.3,31.5),
  # EV NG的z值
  c(7.4,9.7,17.1,9.6,11.9,19.4,14.2,16.4,23.9),
  # EV WWS的z值
  c(6.4,8.3,14.5,8.5,10.4,16.6,12.8,14.6,20.9)
)
global_zmin <- min(z_all)
global_zmax <- max(z_all)
  1. 在layout的coloraxis配置中添加cmin和cmax参数,指定全局上下限:
# 把原来的layout行替换为以下内容
fig <- fig %>% layout(
  coloraxis=list(
    colorscale='RdBu',
    cmin = global_zmin,
    cmax = global_zmax
  ),
  annotations = annotations
)
  1. (可选)如果需要所有子图的等高线层级完全对齐,可在每个plot_ly的参数中补充统一的contours配置:
# 每个子图的contours参数修改为如下内容
contours = list(
  showlabels = TRUE,
  labelfont = list(size = 20, color = 'black'),
  start = global_zmin,
  end = global_zmax,
  size = 2 # 等高线间隔可按需调整
)

修改完成后,色轴就会匹配所有子图的整体数值范围,不会再仅以第一个子图为基准。

内容的提问来源于stack exchange,提问作者T.P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:07