更改Pandas条形图

时间:2017-08-30 18:21:02

标签: pandas matplotlib plot

我希望Pandas图表中的条形图分别给出不同的颜色。根据{{​​3}}和类似的解决方案,解决方案看起来非常简单。

当我尝试模拟解决方案时,我最终得到的所有条形颜色相同(尽管颜色与标准颜色不同)。我想我做错了什么,但我看不出它是什么。其他人都看到了吗?

fig = df.plot(kind='bar',    # Plot a bar chart
            legend=False,    # Turn the Legend off
            width=0.75,      # Set bar width as 75% of space available
            figsize=(8,5.8),  # Set size of plot in inches
            colormap='Paired')

colormap='Paired'是改变颜色的意思。我明白了: this post

这很好,但所有的酒吧颜色都一样!我正在对绘图进行其他更改,如上所示,但它们都是文本格式或轴细节的删除。

2 个答案:

答案 0 :(得分:4)

让我们使用此代码:

df.plot(kind='bar',    # Plot a bar chart
        legend=False,    # Turn the Legend off
        width=0.75,      # Set bar width as 75% of space available
        figsize=(8,5.8),  # Set size of plot in inches
        color=[plt.cm.Paired(np.arange(len(df)))])

enter image description here

答案 1 :(得分:1)

这也应该有效:*

df['Degree'].plot.bar()

这是不同的,因为df['Degree']是一个系列。

Pandas系列似乎用不同的颜色绘制(可能假设每个都来自不同的类别或标签),而在数据框中,每个系列被假定为一个类别的一组值,因此它们是给出相同的颜色。

例如:

s = pd.Series({'a': 100, 'b': 74, 'c': 50})
s.plot.bar()

产地:

enter image description here

更新:

*显然是对于pandas版本< 0.17.0您必须使用s.plot(kind='bar')而不是s.plot.bar()。我怀疑我在这里展示的颜色行为也是特定于版本的。此演示使用0.22.0版本完成。