gpt4 book ai didi

python - Plotly sunburst - 为内圈和外圈定义不同的颜色

转载 作者:行者123 更新时间:2023-12-03 07:59:47 30 4
gpt4 key购买 nike

我正在尝试为著名的Kaggle Titanic challenge做一些数据可视化。 。我想绘制几个饼图,sunburst variant ,在内圈中放入一些特定特征(性别、机票类别等),在外圈中放入存活/死亡的特征。

这是一个例子:

enter image description here

我想对内圈和外圈使用不同的颜色。例如,蓝色/粉色代表男性/女性,绿色/灰色代表幸存者/死亡者。我做不到,如果我通过性别来区分,我就无法通过生存来区分,反之亦然。

这是我的代码:

color_discrete_sequence = ['#8B25BE', '#2D9157', '#2D5F91', '#97909A']

fig = px.sunburst(
total_raw_df,
path=['sex', 'survived'],
# names='sex',
labels=[{'0': 'Deceased', '1': 'Survived'}],
color=total_raw_df['sex'],
color_discrete_sequence=color_discrete_sequence
)
fig.update_traces(
textinfo="label+percent parent",
insidetextorientation='horizontal'
)
fig.update_layout(
font=dict(size=18)
)
fig.show()

数据集是经典的泰坦尼克号数据集,仅供引用,这些是数据框列:

Index(['pclass', 'survived', 'name', 'sex', 'age', 'sibsp', 'parch', 'ticket',
'fare', 'cabin', 'embarked', 'boat', 'body', 'home.dest'],
dtype='object')

最佳答案

由于我们无法准备与问题相同的数据,因此我们转而使用seaborn数据集来解决该问题。颜色对应关系令人困惑,但可以通过更新与标签一对一关系的颜色来实现。您可以使用 fig.data 查看图形结构来检查标签。

import seaborn as sns
df = sns.load_dataset('titanic')

import plotly.express as px

color_discrete_sequence = ['#8B25BE', '#2D9157', '#2D5F91', '#97909A']

fig = px.sunburst(
df,
path=['sex', 'survived'],
# names='sex',
labels=[{'0': 'Deceased', '1': 'Survived'}],
color=df['sex'],
color_discrete_sequence=color_discrete_sequence
)
fig.update_traces(
textinfo="label+percent parent",
insidetextorientation='horizontal'
)
fig.update_layout(
font=dict(size=18)
)

color_mapping = {'0': "#708090", '1': "#006400", 'female': "#c71585", 'male': "#0000cd"}
fig.update_traces(marker_colors=[color_mapping[cat] for cat in fig.data[-1].labels])

fig.show()

enter image description here

关于python - Plotly sunburst - 为内圈和外圈定义不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74679786/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com