pandas plot dataframe barplot with colors by category

30,284

Just pass a color parameter to the plot function with a list of colors:

df['group'].plot(kind='bar', color=['r', 'g', 'b', 'r', 'g', 'b', 'r'])

If you want to plot the value as bars and you also want the group to determine the color of the bar, use:

colors = {1: 'r', 2: 'b', 3: 'g'}
df['value'].plot(kind='bar', color=[colors[i] for i in df['group']])

You can also use something like:

list(df['group'].map(colors))

Instead of the list comprehension.

Share:
30,284
jonas
Author by

jonas

Updated on September 20, 2020

Comments

  • jonas
    jonas over 3 years

    I would like to use pandas to plot a barplot with diffrent colors for category in column.

    Here is a simple example: (index is variable)

    df:
             value   group
    variable               
    a             10      1
    b              9      1
    c              8      1
    d              7      2
    f              6      2
    g              5      3
    h              4      3
    

    I would like to make a barplot with coloring on group. I would also like to specify the colors. In my original dataset I have many goups. Could someone help me with this?

  • FaCoffee
    FaCoffee over 5 years
    How do you do this when you have several bar plots but not all of them have the same number of categories, although the categories across the different plots are the same?