为何Plotly颜色条范围与指定不符?如何强制使用指定范围?
Plotly强制指定颜色条刻度范围的解决方法
问题描述
在Jupyter Notebook中使用Plotly的scattergeo绘制地理散点图时,通过设置colorbar的tickvals和ticktext指定了0.5-3.5的颜色条范围,但生成的颜色条范围与预期不符,希望强制Plotly使用指定范围而非自动调整。
示例代码中关键刻度设置:
tickvals = np.arange(-0.5,-3.5,-0.1) # 对应正数值0.5到3.5 ticktext = [str(f"{-1*val:.1f}") for val in tickvals]
解决办法
Plotly默认会根据数据的极值自动调整颜色映射范围,仅设置colorbar的刻度参数不足以锁定范围,必须在marker配置中添加cmin和cmax参数,强制限定颜色映射的上下边界。
修改步骤
在你的marker_dict中加入cmin和cmax,对应你设置的tickvals的极值:
marker_dict = {'color': -1*log_depth_ser, #negative used to sync w/colorbar 'size': 6, 'colorscale': 'deep', 'reversescale': True, 'colorbar': colorbar_dict, 'cmin': -3.5, # 对应tickvals的最小值,即原刻度3.5 'cmax': -0.5 # 对应tickvals的最大值,即原刻度0.5 }
原理说明
cmin和cmax定义了颜色映射的数值区间,Plotly会严格按照这个范围对数据进行颜色编码- 结合colorbar的
tickvals和ticktext,就能确保颜色条显示的刻度范围完全符合要求,不受数据实际极值的影响
内容的提问来源于stack exchange,提问作者user1245262
相关产品推荐
相关产品推荐

