4

I'd like to change the facet labels in a plotly(_express) plot. Here's the plot:

import plotly.express as px
tips = px.data.tips()
fig = px.scatter(tips, x="total_bill", y="tip", color="smoker", facet_col="sex")
fig.show()

What I'd like is to remove the sex= from the labels.

RoyalTS
  • 9,545
  • 12
  • 60
  • 101

1 Answers1

12

UPDATE: as of plotly version 4.2 in October 2019, the following usage of for_each_annotation is recommended by the docs at https://plotly.com/python/facet-plots/#customize-subplot-figure-titles

import plotly.express as px

fig = px.scatter(px.data.tips(), x="total_bill", y="tip", facet_row="sex")

fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))

fig.show()

The easiest way to do this is to iterate over the annotations:

for a in fig.layout.annotations:
    a.text = a.text.split("=")[1]
nicolaskruchten
  • 26,384
  • 8
  • 83
  • 101