Python里plt.text()方法在图上标注,为什么没画在坐标轴里?

如下这段代码(我在jupyter notebook里运行)

from matplotlib import pyplot as plt
#fig=plt.figure()

for n in range(12):
    plt.text(X[n][0],X[n][1],n,color='r',fontsize=25)

实际显示效果是如下,为何没显示在坐标轴里,数据见下面:

里面的X数据如下:

阅读 6.2k
1 个回答

plt.text() 默认是在 data coordinates 上绘制的。而你的代码上来就直接 plt.text(),默认的 data coordinates 范围是 [0, 1],你的坐标又超出了这个范围,自然会绘制到 axes 外面去。

所以最简单的方式是,在前面指定坐标范围:

fig, ax = plt.subplots()
# +1/-1是为了将 text 包括在 axes 里,这个可以随意调整
ax.set_xlim(X[:, 0].min() - 1, X[:, 0].max() + 1)
ax.set_ylim(X[:, 1].min() - 1, X[:, 1].max() + 1)
for n in range(2):
    ax.text(X[n, 0], X[n, 1], n, color='r', fontsize=25)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题