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

Plotly动画帧切换时如何保持coloraxis色阶范围恒定

解决方案

plot_ly()层设置的zmin、zmax仅对初始加载的第一帧生效,帧切换时Plotly默认会根据当前帧的数值自动重算色阶范围,最终导致色阶随时间帧变动。

要固定全动画帧的色阶范围,核心是把色阶上下限配置到layout()的coloraxis参数中,强制所有帧共用同一套色阶映射规则,修正后的代码如下:

fig <- DATA4 %>%
  plot_ly(
    type = 'densitymapbox',
    lat = ~latitude,
    lon = ~longitude,
    z = ~Hourly_Counts,
    hoverinfo = 'z',
    coloraxis = 'coloraxis',
    frame = ~Time,
    radius = 30,
    opacity = 0.75,
    zmin = 0,
    zmax = 6000
  ) %>%
  layout(
    mapbox = list(
      style = "carto-positron",
      center = list(lon = 144)
    ),
    coloraxis = list(
      colorscale = "Viridis",
      # 全局固定色阶范围,对所有动画帧生效
      cmin = 0,
      cmax = 6000
    )
  )

# 若配置后仍存在帧切换色阶跳变,追加以下动画配置即可
fig <- fig %>%
  animation_opts(
    transition = 0,
    redraw = FALSE
  )

fig

小提示:原代码中~DATA4$Hourly_Counts、~DATA4$Time写法冗余,传入plot_ly的数据集会自动解析列名,无需再加DATA4$前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:33:31