向绘图图形的每个方面添加跟踪
add a trace to every facet of a plotly figure
我想在绘图的所有方面添加跟踪。
例如,我想在显示 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)
根据 example from plotly,您可以将 'all'
作为 row
和 col
参数传递,甚至可以跳过空子图:
fig.add_trace(go.Scatter(...), row='all', col='all', exclude_empty_subplots=True)
我想在绘图的所有方面添加跟踪。
例如,我想在显示 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)
根据 example from plotly,您可以将 'all'
作为 row
和 col
参数传递,甚至可以跳过空子图:
fig.add_trace(go.Scatter(...), row='all', col='all', exclude_empty_subplots=True)