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í
相关产品推荐
相关产品推荐

