如何在Plotly Express中更新已定义的range_color参数?
Plotly Express 正确更新颜色轴取值范围的方法
问题复现
初始绘图代码如下,绘制散点图时首次设置颜色映射范围为[2,4]:
import plotly.express as px dfx = px.data.tips() fig = px.scatter(dfx, x='total_bill', y='tip', color='size', template='plotly_dark', range_color=[2,4])
尝试通过如下代码更新颜色范围时触发报错:
fig.update_layout(range_color=[3,6]) # 报错信息:ValueError: Invalid property specified for object of type plotly.graph_objs.Layout: 'range'
报错原因
range_color是Plotly Express初始化图表时的快捷传参,不属于布局(Layout)对象的顶层属性,实际对应的是颜色轴(coloraxis)的取值范围配置,直接给update_layout传顶层range_color参数会被判定为无效属性。
正确更新方式
任选以下一种写法即可完成颜色范围更新,效果完全一致:
- 方式1:在
update_layout中指定颜色轴的最大、最小值配置fig.update_layout( coloraxis = { 'cmin': 3, 'cmax': 6 } ) - 方式2:调用Plotly提供的颜色轴专用更新方法,写法更简洁
fig.update_coloraxes(cmin=3, cmax=6)
执行上述任意一段代码后,图表的颜色映射范围就会从初始的[2,4]更新为目标值[3,6]。
内容的提问来源于stack exchange,提问作者Federico Gentile
相关产品推荐
相关产品推荐

