下面是数据框中的一些示例数据
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])
以便按国家和真/假值显示
这给了我一个这样的基本显示
我试图做的是将所有列中的真值限制为一个颜色对,而那些假值限制为另一个颜色对-因为我首先按限制排序,这意味着颜色将沿图形的x轴从前者更改为后者。我可以按照下面的示例对简单的条形图执行此操作
Color matplotlib bar chart based on value
对于使用此选项的一对颜色
xx=_df.plot(kind="bar", x='Country',stacked=True,figsize=(20,10),color=['r','b'])
(可怕)但我不知道如何对列应用微分器,根据真假值将两个颜色值更改为两个不同的值
也许这不是最漂亮的方法,但它是有效的。我正在使用来自
plot
方法的关键字参数color
。作为参数,我们可以根据'restricted'
条件为您创建一个字典。我使用了matplotlib colormaps中定义的一些内置颜色,但您可以使用自己选择的颜色,当然:因为这会弄乱默认的图例,所以我尝试制作一个(虽然不是最漂亮的):
这为我们提供了以下图形作为输出:
可能有更好的方法,但这里有一种使用循环的方法:
输出:
相关问题 更多 >
编程相关推荐