Home > Mobile >  pandas bar plot not taking list of colours
pandas bar plot not taking list of colours

Time:03-30

I'm trying to colour a bar chart with different colours, but when I pass a list of colours to the color argument, it still colors all bars the same.

combi_df = pd.DataFrame(columns=['Labels', 'Number'])

label_list = ['one','two','three','four','five','six','seven','eight']
              

 
int_list = [302,11,73,10,68,36,42,30]
combi_df['Labels'] = label_list
combi_df['Number'] = int_list



fig = plt.figure()
ax = plt.subplot(111)


box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])

c = ['#1b9e77', '#a9f971', '#fdaa48','#6890F0','#A890F0','#fdaa48','#6890F0','#A890F0']


combi_df[['Number']].plot(kind='bar',color=c ,legend=True, fontsize=10,ax=ax)
ax.legend(ax.patches, combi_df['Labels'], loc='upper center',bbox_to_anchor=(0.75, 1))
ax.set_xlabel("Labels", fontsize=12)
ax.set_ylabel("Number of occurences", fontsize=12)

plt.show()

Output

I have tried a number of things to make it work, including

Or make it horizontal and replace the legend with yticklabels:

combi_df.pivot(columns='Labels', values='Number').plot.barh(color=c, stacked=True, legend=False, ax=ax)
ax.set_yticklabels(combi_df['Labels'])

  • Related