Change Line Colour with Plotly Express

Viewed 8961

I have a plotly express figure:

fig = px.line(data, x="DateTime", y="Gold", title="Gold Prices")

I want to change some details, like so

fig.update_layout(
    line_color="#0000ff",  # ValueError: Invalid property specified for object of type plotly.graph_objs.Layout: 'line'
    line=dict(
        color='rgb(204, 204, 204)',
        width=5
    ),  # Bad property path: line
)

But both attempts (trying solutions I researched on here) failed, with the errors given in the comments.

I have also tried fig = px.line(data, x="DateTime", y="Gold", title="Gold Prices", template="ggplot2", color_discrete_map={"Gold": "green"}) to no avail.

How do I make this work please?

4 Answers

Try to use .update_traces() with plotly.express instead of .update_layout():

fig.update_traces(line_color='#0000ff', line_width=5)

plotly.express

If you want to use plotly.express, add the following settings.

import plotly.express as px

df = px.data.stocks()
fig = px.line(df, x='date', y="GOOG", title='Ticker:GOOG')

fig['data'][0]['line']['color']='rgb(204, 204, 204)'
fig['data'][0]['line']['width']=5

fig.show()

plotly.graph_objects

If you are using plotly.graph_objects, you can set it in go.Scatter().

import plotly.express as px
import plotly.graph_objects as go

df = px.data.stocks()
fig = go.Figure(data=go.Scatter(x=df['date'], y=df['GOOG'], mode='lines', line_color='rgb(204, 204, 204)', line_width=5))
fig.update_layout(title='Ticker:GOOG')

fig.show()

enter image description here

Have you tried simply.

fig.add_scattergl(x=xs, y=df.y, line={'color': 'black'})

Source

Try using the "set_color" function like so:

fig.set_color('b')

or

fig.set_color('g')

where g and b can also be r for the RGB color scheme. then fig.show()

Related