How should I set up text in order to get “r-square: 0.90”?
Set up:
fig.add_annotation(dict(x=0.5,
y=0.85,
showarrow=False,
text= "r-square: %{a:.2f}",
textangle=0,
xanchor='left',
font=dict(size=20, color="black", family="Courier New, monospace"),
#opacity=0.8,
xref="paper",
yref="paper"))
Where:
a = px.get_trendline_results(fig).px_fit_results.iloc[0].rsquared
g = float("{0:.2f}".format(a)) # I also tried with this
but it is not working.
Advertisement
Answer
You can use an f-string instead. For example, here is what I get when I use the tips dataset:
import plotly.express as px
## use the tips dataset
df = px.data.tips()
fig = px.scatter(df, x="total_bill", y="tip", trendline="ols")
a = px.get_trendline_results(fig).px_fit_results.iloc[0].rsquared
fig.add_annotation(dict(x=0.5,
y=0.85,
showarrow=False,
text= f"r-squared: {a:.2f}",
textangle=0,
xanchor='left',
font=dict(size=20, color="black", family="Courier New, monospace"),
xref="paper",
yref="paper"))
fig.show()
