Announcing Dash Bio 1.0.0 🎉 : a one-stop-shop for bioinformatics and drug development visualizations.

Plotly express bar colour change

How can I change the colour of the plotly express bar-chart to green in the following code?

import as px
import pandas as pd

# prepare the dataframe
df = pd.DataFrame(dict(
        x=[1, 2, 3],
        y=[1, 3, 2]

# prepare the layout
title = "A Bar Chart from Plotly Express"

fig =, 
             x='x', y='y', # data from df columns
             color= pd.Series('green', index=range(len(df))), # does not work
             labels={'x': 'Some X', 'y':'Some Y'})

Hi @kashi
Welcome to Plotly forum!!!
Before working with plotly express you should have some background in

A figure consists in data, and layout (while animations have also, frames). Data is a list of traces such as
scatter, bar, heatmap, etc Each trace has a few attributes that can be updated after your fig was defined.

As long as you have no knowledge on you are not able to update your figures according to your preferences.

In the case of your code above you should perform the following update:


To get info on Bar attributes just type:


and similarly on any trace type.
To update the figure appearance (i.e to improve its aesthetics) you can update its layout. Just try it for your example:

fig.update_layout(width=700, height=500, bargap=0.05)

Thanks @empet. I did go through the background documents.

So, do you mean to say that the only way I can change the color of a bar created by plotly express is after it gets instantiated? Is there no property within px to change it?


You can assign the same color to each bar setting color_discrete_sequence =['green']*3:

fig =, 
             x='x', y='y', 
             color_discrete_sequence =['green']*len(df),
             labels={'x': 'Some X', 'y':'Some Y'})

For more details on see

1 Like

Not sure when this functionality was added, for anyone coming here looking for solutions to grouped bar charts, what most people will want in this case is not color_discrete_sequence but instead color_discrete_map. For example:

fig =
    color='z',   # if values in column z = 'some_group' and 'some_other_group'
        'some_group': 'red',
        'some_other_group': 'green'

Thank you so mucn <3, exactly what I was looking for!

Dude!, you saved me. I’ll use this to answer the question I posed earlier