Matplotlib - 在注释函数中设置箭头和文本之间的填充

Dan*_*ein 6 python matplotlib scipy

如何在 matplotlib 的 annotate 函数中设置箭头和文本之间的距离(填充)?有时文本最终会离箭头太近,我想将它们分开一点。

基本示例:

import matplotlib.pyplot as plt

plt.annotate('Here it is!',xy=(-1,-1),xytext=(0,0),
             arrowprops=dict(arrowstyle='->',lw=1.5))

plt.xlim(-10,10)
plt.ylim(-10,10)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

jrj*_*rjc 8

对于花哨的箭头,您可以使用以下bbox属性:

fig, ax = plt.subplots(1, 3, figsize=(7, 3))
pad_val = [-5, 0, 5]
for a,p in zip(ax, pad_val):
    a.annotate('Here it is!\npad={}'.format(p),xy=(-1,-1),xytext=(1,1),
                arrowprops=dict(arrowstyle='-|>', fc="k", ec="k", lw=1.5),
                bbox=dict(pad=p, facecolor="none", edgecolor="none"))
    a.set_xlim(-10,10)
    a.set_ylim(-10,10)
Run Code Online (Sandbox Code Playgroud)

在 matplotlib 注释中设置箭头和文本之间的垫

这里的缺点是你不能在注释后面添加颜色(这facecolor="none"是强制性的),否则箭头将始终粘在框架的边框上,并且可能很难看。

华泰