答案:
只需使用px构建一个图形,然后从中“借”所有图形元素并在graph_objects图形中使用即可获得所需的结果!
详细信息:
如果px
确实可以像这样给您所需的太阳辐射图表:
图1:
![enter image description here](https://istack.dev59.com/CfJZE.webp)
代码1:
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df = pd.DataFrame({'user': [23, 24, 25, 26, 27],
'age': [12, 13,15, 20, 21],
'gender': ['male','male', 'female','male', 'male'] })
fig = px.sunburst(df, path=["gender", "age"])
fig.show()
据我所知,您需要重新构建数据以使用graph_objects
。目前,您的数据格式如下:
![enter image description here](https://istack.dev59.com/twVeN.webp)
graph_objects
需要使用label = ['12', '13', '15', '20', '21', 'female', 'male']
。那么现在怎么办?要痛苦地为每个元素找到正确的数据结构吗?不需要,只需使用px
构建一个图,并从中“窃取”所有的图元素并将其用于graph_objects
图中:
代码2:
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df = pd.DataFrame({'user': [23, 24, 25, 26, 27],
'age': [12, 13,15, 20, 21],
'gender': ['male','male', 'female','male', 'male'] })
fig = px.sunburst(df, path=["gender", "age"])
fig2 =go.Figure(go.Sunburst(
labels=fig['data'][0]['labels'].tolist(),
parents=fig['data'][0]['parents'].tolist(),
)
)
fig2.show()
情节2:
![此处输入图片描述](https://istack.dev59.com/CzLhY.webp)
如果您希望在同一幅图中显示数据集的更多特征,只需将ids=fig['data'][0]['ids'].tolist()
添加到代码中:
情节3:
![此处输入图片描述](https://istack.dev59.com/SYEGm.webp)
完整代码:
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df = pd.DataFrame({'user': [23, 24, 25, 26, 27],
'age': [12, 13,15, 20, 21],
'gender': ['male','male', 'female','male', 'male'] })
fig = px.sunburst(df, path=["gender", "age"])
fig2 =go.Figure(go.Sunburst(
labels=fig['data'][0]['labels'].tolist(),
parents=fig['data'][0]['parents'].tolist(),
values=fig['data'][0]['values'].tolist(),
ids=fig['data'][0]['ids'].tolist(),
domain={'x': [0.0, 1.0], 'y': [0.0, 1.0]}
))
fig2.show()