使用annotate。
事实上,我几乎从不使用text。即使我想在数据坐标中放置东西,我通常也希望将其偏移一些固定的点距离,这使用annotate 更容易。
举个简单的例子:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1))
axes[0].plot(range(1, 4))
axes[1].plot(range(10, 40, 10), range(1, 4))
for ax in axes:
ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16,
horizontalalignment='right', verticalalignment='bottom')
plt.show()
如果您希望它稍微偏离角落,您可以通过xytext kwarg 指定一个偏移量(和textcoords 来控制xytext 的值的解释方式)。我在这里也使用了ha 和va 的缩写horizontalalignment 和verticalalignment:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1))
axes[0].plot(range(1, 4))
axes[1].plot(range(10, 40, 10), range(1, 4))
for ax in axes:
ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16,
xytext=(-5, 5), textcoords='offset points',
ha='right', va='bottom')
plt.show()
如果您尝试将其放置在轴下方,您可以使用偏移量将其放置在点下方的设定距离:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, subplot_kw=dict(aspect=1))
axes[0].plot(range(1, 4))
axes[1].plot(range(10, 40, 10), range(1, 4))
for ax in axes:
ax.annotate('Test', xy=(1, 0), xycoords='axes fraction', fontsize=16,
xytext=(0, -15), textcoords='offset points',
ha='right', va='top')
plt.show()
还可以查看Matplotlib annotation guide 了解更多信息。