这与this question的方向相同。
我想将箭头从一个散点指向另一个散点,以便箭头位于标记的边缘旁边。如下例所示:
import matplotlib.pyplot as plt
import matplotlib as mpl
fig, ax = plt.subplots()
ax.scatter([0,1],[0,1], s=300)
arrow = mpl.patches.FancyArrowPatch(posA=(0,0), posB=(1,1), arrowstyle='-|>', mutation_scale=20, shrinkA=7, shrinkB=7)
plt.show()
在这里,我手动选择shrinkA
和shrinkB
的值,以使箭头位于离目标散点边缘非常近的位置。但是,如果我更改标记的大小,我将不得不更改这些值。
我的问题是:知道标记的大小(ax.scatter中的kwarg s
),如何选择shrinkA
和shrinkB
以使箭头靠近标记的边缘?
我知道s
是在p ^ 2中测量的,其中p是一个印刷点。这样标记的半径为sqrt(s / pi)
。如果shrinkA
和shrinkB
在相同的印刷点上进行衡量,我们可以shrinkB=radius
radius
,其中Option
是标记的半径。
对于s == 300,这是有意义的,因为半径接近9.8。