gpt4 book ai didi

python - 如何更改堆积的 pyplot 图表的列颜色以指示另一列是真还是假?

转载 作者:行者123 更新时间:2023-12-03 23:42:10 26 4
gpt4 key购买 nike

这是数据框中的一些示例数据

Country      restricted  V1%      V2%
0 Algeria True 39.575812 60.424188
1 Angola True 56.931682 43.068318
2 Argent False 15.555556 84.4444
我正在使用堆积条形图来显示 3 个值。 V1 和 V2 已标准化为 %ges,因此创建基本图表很简单,如下所示: xx=df.plot(kind="bar", x='Country',stacked=True,figsize=(20,10);之前已经订购了数据框 df=conjoint_ag_df.sort_values(['restricted',.Country'], ascending=[False,True])以便按国家和真/假值显示它。
这给了我一个这样的基本显示。
enter image description here
我想要做的是将所有具有真值的列安排为具有一个颜色对,而将具有假值的所有列安排为具有另一个颜色对 - 因为我首先按限制排序,这意味着颜色将从沿图的 x 轴从前者到后者。我可以按照此示例对简单的条形图执行此操作
Color matplotlib bar chart based on value
和使用这个的一对颜色 xx=_df.plot(kind="bar", x='Country',stacked=True,figsize=(20,10),color=['r','b'])(可怕)但我无法弄清楚如何根据 True False 值将微分器应用于列以将两个颜色值更改为两个不同的值。

最佳答案

可能有更好的方法,但这里有一个使用循环的方法:

for idx, row in df.iterrows():
color = ['tab:blue', 'tab:orange'] if row['restricted'] else ['tab:blue', 'tab:red']
plt.bar(row['Country'], row['V1%'], color=color[0])
plt.bar(row['Country'], row['V2%'], bottom=row['V1%'], color=color[1])
输出:
enter image description here

关于python - 如何更改堆积的 pyplot 图表的列颜色以指示另一列是真还是假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65148530/

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