Black Lives Matter. Please consider donating to Black Girls Code today.

Plotly express bar colour change

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

import plotly.express 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 = px.bar(df, 
             x='x', y='y', # data from df columns
             color= pd.Series('green', index=range(len(df))), # does not work
             title=title,
             labels={'x': 'Some X', 'y':'Some Y'})
fig.show()

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

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 plotly.py 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:

fig.update_traces(marker_color='green')

To get info on Bar attributes just type:

help(go.Bar)

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?

@kashi

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

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

For more details on px.bar see https://plot.ly/python-api-reference/generated/plotly.express.bar.html.

1 Like