为了账号安全,请及时绑定邮箱和手机立即绑定

Plotly:如何移除使用 add_annotation() 创建的箭头尾部后面的间隙?

Plotly:如何移除使用 add_annotation() 创建的箭头尾部后面的间隙?

POPMUISE 2023-05-09 15:33:17
我正在使用该plotly.graph_objects.Figure.add_annotation()函数将箭头添加到我的图中 - 请参阅下面的简单示例代码:import plotly.graph_objects as gofig = go.Figure()fig.add_annotation(ax = 3, axref = 'x', ay = 2, ayref = 'y',                   x = 4, xref = 'x', y = 2, yref = 'y',                   arrowhead = 3)fig.add_shape(x0 = 1, x1 = 3, xref = 'x',              y0 = 1, y1 = 3, yref = 'y')fig.add_shape(x0 = 4, x1 = 6, xref = 'x',              y0 = 1, y1 = 3, yref = 'y')fig.update_layout(xaxis_range = [0, 7], yaxis_range = [0, 4])fig.show()呈现以下图像:如您所见,左侧矩形和箭头尾部之间有一个小间隙。有没有办法消除这个差距,使箭头完全按照参数ax和指定的方式开始ay?我曾尝试查看文档以查看该函数是否可能还有其他相关参数add_annotation(),但找不到线索。
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

这应该这样做:

xanchor = 'right'

//img2.sycdn.imooc.com/6459f7760001608403720207.jpg

完整代码:

import plotly.graph_objects as go


fig = go.Figure()


fig.add_annotation(ax = 3, axref = 'x', ay = 2, ayref = 'y',

                   x = 4, xref = 'x', y = 2, yref = 'y',

                   arrowhead = 3,

                   xanchor = 'right')


fig.add_shape(x0 = 1, x1 = 3, xref = 'x',

              y0 = 1, y1 = 3, yref = 'y')


fig.add_shape(x0 = 4, x1 = 6, xref = 'x',

              y0 = 1, y1 = 3, yref = 'y')


fig.update_layout(xaxis_range = [0, 7], yaxis_range = [0, 4])


fig.show()

解释:

根据文档,

xanchor – 设置文本框的水平位置锚点 此锚点将位置绑定x到注释的“左”、“中”或“右”。例如,如果x设置为 1,则设置xref为“paper”和xanchor“right”,则注释的最右侧部分与绘图区域的最右侧边缘对齐。如果是“auto”,锚相当于数据引用注释的“中心”或者如果有箭头,而对于没有箭头的纸张引用,选择的锚对应于最近的边。

即使没有实际的注释文本,(占位符)文本字段仍会呈现('center'默认情况下锚定到),这就是推动箭头尾部的原因。设置xanchor'right'确保箭头从预期的位置开始,而空文本字段被推到其左侧。


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信