matplotlib 如何在轴注记中校正坐标偏移

vaqhlq81  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(96)

我尝试用ax.annotate注解一个线图,如下所示。

import numpy as np
import matplotlib.pyplot as plt

x_start = 0
x_end = 200
y_start = 20
y_end = 20

fig, ax = plt.subplots(figsize=(5,5),dpi=600)
ax.plot(np.asarray([i for i in range(0,1000)]))
ax.annotate('', xy=(x_start, y_start), xytext=(x_end, y_end), xycoords='data', textcoords='data',
            arrowprops={'arrowstyle': '|-|'})
plt.show()

其中给出了一个图(放大)

虽然我将x_start指定为0,将x_end指定为200,但在x轴上,实际的start大于0,实际的end小于200
如何正确地将此注解与设置的坐标对齐?

rbl8hiat

rbl8hiat1#

默认情况下,箭头两端收缩2点(请参见doc)。您可以将shrinkAshrinkB设置为0以与x轴对齐:

import numpy as np
import matplotlib.pyplot as plt

x_start = 0
x_end = 200
y_start = 20
y_end = 20

fig, ax = plt.subplots(figsize=(5,5),dpi=600)
ax.plot(np.asarray([i for i in range(0,1000)]))
ax.annotate('', xy=(x_start, y_start), xytext=(x_end, y_end), xycoords='data', textcoords='data',
            arrowprops={'arrowstyle': '|-|', 'shrinkA': 0, 'shrinkB': 0})
plt.show()

输出:

相关问题