使用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()
![在此处输入图像描述](https://i.stack.imgur.com/zYte5.png)
如果您希望它稍微偏离角落,您可以通过xytext
kwarg 指定偏移量(并textcoords
控制如何xytext
解释 的值)。我也在此处使用ha
and的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()
![在此处输入图像描述](https://i.stack.imgur.com/f5XZL.png)
如果您尝试将其放置在轴下方,则可以使用偏移量将其放置在点以下设定的距离:
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()
![在此处输入图像描述](https://i.stack.imgur.com/39oCK.png)
还可以查看Matplotlib 注释指南以获取更多信息。