我在matplotlib中创建了一个大熊猫系列的条形图,如下所示:
如您所见,两种灰色颜色太相似了。 Set1看起来有很多颜色,那么为什么每组只有4个类别的分组条形图重复它们呢?以下是我的代码:
ax = df.groupby([
'type',
'effect'
]).size().reset_index().pivot(index='type', columns='effect', values=0).plot(
kind='bar',
colormap=plt.cm.Set1
)
ax.legend(bbox_to_anchor=(1.3,1))
我可以通过设置color=plt.cm.Set1(np.linspace(0,1,6))
并从我的情节调用中删除色彩图来解决这个问题,但这看起来很糟糕......主要是因为我必须手动选择数字6以使其看起来很好。色彩映射应该能够推断出要使用的颜色数量以及要使用的颜色数量。有没有办法做到这一点?
以下是一些最小,完整且可验证的示例代码:
test = pd.DataFrame({
'effect_1': pd.Series([1379], index=['type_1']),
'effect_2': pd.Series([1666], index=['type_1']),
'effect_3': pd.Series([197], index=['type_1']),
'effect_4': pd.Series([166], index=['type_1']),
})
test.plot(kind='bar', colormap='Set1')
答案 0 :(得分:0)
从colormaps page of matplotlib version 1.5.3看,Set1
色彩图看起来像这样:
可以看出,绿色和紫色之间以及色彩图的远端都有一些灰色。所以你得到的图是这个色图的预期。
如果使用新的Set1
很重要,您可能需要升级matplotlib,否则您可能只想选择不同的色彩映射。