Python 向绘图图形的每个面添加轨迹

Python 向绘图图形的每个面添加轨迹,python,plotly,facet,plotly-python,Python,Plotly,Facet,Plotly Python,我想添加一个跟踪到一个有情节的情节的所有方面 例如,我想在显示15%小费的“小费”数据集散点图的每个日常方面添加一条参考线。然而,我下面的尝试只在第一个方面添加了一行 import plotly.express as px import plotly.graph_objects as go import numpy as np df = px.data.tips() ref_line_slope = 0.15 # 15% tip for reference ref_line_x_range

我想添加一个跟踪到一个有情节的情节的所有方面

例如,我想在显示15%小费的“小费”数据集散点图的每个日常方面添加一条参考线。然而,我下面的尝试只在第一个方面添加了一行

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

df = px.data.tips()

ref_line_slope = 0.15 # 15% tip for reference
ref_line_x_range = np.array([df.total_bill.min(), df.total_bill.max()])

fig = px.scatter(df, x="total_bill", y="tip",facet_col="day", trendline='ols')
fig = fig.add_trace(go.Scatter(x=reference_line_x_range,y=ref_line_slope*reference_line_x_range,name='15%'))
fig.show()

这不是一个优雅的解决方案,但它应该适用于大多数情况

for row_idx, row_figs in enumerate(fig._grid_ref):
    for col_idx, col_fig in enumerate(row_figs):
        fig.add_trace(go.Scatter(...), row=row_idx+1, col=col_idx+1)
根据一个参数,您可以将
'all'
作为
参数传递,甚至可以跳过空的子批次:

fig.add_trace(go.Scatter(…),row='all',col='all',exclude_empty_subplot=True)

比另一个answerNice好得多,看起来它是在2020年10月在v4.12中推出的。