python - 如何使用 graph_objects 子模块在 plotly sunburst 图表上设置颜色?
问题描述
如果我使用 plotly express 子模块,我可以通过以下方式创建彩色旭日图:
import plotly.express as px
names = ["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]
color_discrete_sequence = ['#2D5F91', '#FFAA00', '#96BEE6', '#48B7B4', '#E8655F',
'#819FBD', '#FFCC66', '#C0D8F0', '#91D4D2', '#F1A39F']
fig = px.sunburst(
names=names,
parents=parents,
values=values,
color_discrete_sequence = color_discrete_sequence,
)
fig.show()
我想对 plotly 的 graph_objects 做同样的事情。有没有类似的功能?
解决方案
该graph_objects
版本在官方参考中可用。
import plotly.graph_objects as go
color_discrete_sequence = ['', '#FFAA00', '#2D5F91','#819FBD','#819FBD','#91D4D2', '#96BEE6', '#C0D8F0','#E8655F','#F1A39F','#48B7B4']
fig =go.Figure(go.Sunburst(
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\],
marker=dict(colors=color_discrete_sequence)
))
# Update layout for tight margin
# See https://plotly.com/python/creating-and-updating-figures/
fig.update_layout(margin = dict(t=0, l=0, r=0, b=0))
fig.show()