调整plot.graph_objects.Sunburst的colorbar参数
解决Plotly Sunburst颜色条参数调整问题
你的问题核心是颜色条的配置层级错误:你尝试在layout.coloraxis_colorbar中设置参数,但Sunburst的颜色条属于其marker属性的子配置,需要直接通过marker.colorbar调整,而非全局的coloraxis。另外代码中存在笔误:data['color']应改为data['colors']。
修正后的完整代码
import plotly.graph_objects as go data = dict( labels=["Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"], parents=["", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve" ], values=[10, 14, 12, 10, 2, 6, 6, 4, 4], colors=[1, 2, 3, 4, 5, 6, 7, 8, 9], ) fig = go.Figure(go.Sunburst( labels=data['labels'], parents=data['parents'], values=data['values'], marker=dict( colors=data['colors'], # 修正笔误 colorscale='Blues', cmin=0, cmax=10, showscale=True, # 直接在此配置颜色条参数 colorbar=dict( title='Color', tickvals=[0, 5, 10], ticktext=['low', 'middle', 'high'], tickfont=dict(size=12), # 设置刻度字体大小 nticks=3 # 设置刻度数量 ) ) )) fig.update_layout( margin=dict(t=0, l=0, r=0, b=0) ) fig.show()
关键配置说明
- 所有颜色相关配置直接嵌入
Sunburst的marker参数中,无需事后修改fig.data[0].marker(当然也支持事后修改) - 通过
marker.colorbar可直接设置颜色条的标题、刻度值、刻度文本、字体大小等所有参数
事后修改颜色条的方式
如果需要对已创建的图形调整颜色条参数,也可以用以下方式:
fig.data[0].marker.colorbar.update( title='Color', tickvals=[0, 5, 10], ticktext=['low', 'middle', 'high'], tickfont=dict(size=12), nticks=3 )
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

