我正在尝试使用绘图来比较使用误差线作为置信区间的回归模型的系数。我使用以下代码来绘制它,使用变量作为y散点图中的分类轴。问题是这些点是重叠的,我想像设置时在条形图中发生的那样避开它们barmode='group'。如果我有一个数字轴,我可以手动躲避它们,但我做不到。
fig = px.scatter(
df, y='index', x='coef', text='label', color='model',
error_x_minus='lerr', error_x='uerr',
hover_data=['coef', 'pvalue', 'lower', 'upper']
)
fig.update_traces(textposition='top center')
fig.update_yaxes(autorange="reversed")
Run Code Online (Sandbox Code Playgroud)
使用构面,我几乎得到了我想要的结果,但有些标签超出了绘图范围并且不可见:
fig = px.scatter(
df, y='model', x='coef', text='label', color='model',
facet_row='index',
error_x_minus='lerr', error_x='uerr',
hover_data=['coef', 'pvalue', 'lower', 'upper']
)
fig.update_traces(textposition='top center')
fig.update_yaxes(visible=False)
fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))
Run Code Online (Sandbox Code Playgroud)
有人对于在第一种情况下躲避点或在第二种情况下显示标签有任何想法或解决方法吗?
提前致谢。
PS:这是我为生成绘图而制作的随机假数据框:
df = pd.DataFrame({'coef': {0: 1.0018729737113143,
1: 0.9408864645423858,
2: 0.29796556981484884,
3: -0.6844053575764955,
4: -0.13689631932690113,
5: 0.1473096200402363,
6: 0.9564712505670716,
7: 0.956099003887811,
8: 0.33319108930207175,
9: -0.7022778825729681,
10: -0.1773916842612131,
11: 0.09485417304851751},
'index': {0: 'const',
1: …Run Code Online (Sandbox Code Playgroud)