继续我的评论,据我所知,你现在需要的东西目前还不可用。
然而,这里有一个解决方法的例子,它使用一个shapes
字典来添加水平和垂直线——作为交叉轴——放置在所需的x/y交点6处。
样本数据集:
import numpy as np
x = (np.random.randn(100)*2)+6
y1 = (np.random.randn(100)*2)+6
y2 = (np.random.randn(100)*2)+6
绘图代码示例:
import plotly.io as pio
layout = {'title': 'Intersection of X/Y Axes Demonstration'}
shapes = []
traces = []
traces.append({'x': x, 'y': y1, 'mode': 'markers'})
traces.append({'x': x, 'y': y2, 'mode': 'markers'})
shapes.append({'type': 'line',
'x0': 2, 'x1': 10,
'y0': 6, 'y1': 6})
shapes.append({'type': 'line',
'x0': 6, 'x1': 6,
'y0': 2, 'y1': 10})
layout['shapes'] = shapes
layout['xaxis'] = {'range': [2, 10]}
layout['yaxis'] = {'range': [2, 10]}
pio.show({'data': data, 'layout': layout})
输出:
![enter image description here](https://istack.dev59.com/2W0Xp.webp)
评论(简要版):
这里展示的示例代码使用了低级别的Plotly API(plotly.io
),而不是像graph_objects
或express
这样的便捷包装器。原因是我(个人认为)向用户展示发生在“引擎盖下”的内容比使用便捷包装器掩盖底层代码逻辑更有帮助。
这样,当用户需要修改图表的细节时,他们将更好地理解Plotly构建用于底层绘图引擎(orca)的list
和dict
。