【问题标题】:Display numbers instead of points using pyplot [duplicate]使用pyplot显示数字而不是点[重复]
【发布时间】:2017-11-21 15:40:31
【问题描述】:

我有一个 nx2 维数组,表示 n 个点,它们的两个坐标为 x,y。使用 pyplot,我想显示我的点数 n 而不是只显示无法知道哪个是什么的点。

我找到了一种方法来说明我的观点,但我真正想要的只是数字。

我怎样才能做到这一点?

【问题讨论】:

  • 可能是重复的,但是我正在解释问题中的标题和最后一句,以便用户已经找到了解决方案,例如来自链接问题的解决方案,但不喜欢它。改进问题可能有助于理解是否是这种情况。
  • 是这样,我希望显示数字而不是点。

标签: arrays matplotlib numbers point


【解决方案1】:

您可以使用plt.text 将数字作为文本放置在图中。要使数字出现在坐标的确切位置,您可以使用ha="center", va="center" 将文本居中对齐。

import numpy as np; np.random.seed(2)
import matplotlib.pyplot as plt

xy = np.random.rand(10,2)

plt.figure()
for i, ((x,y),) in enumerate(zip(xy)):
    plt.text(x,y,i, ha="center", va="center")

plt.show()

为了使绘图自动缩放到值所在的范围,您可以添加一个不可见的散点图

x,y =zip(*xy)
plt.scatter(x,y, alpha=0) 

或者,如果数字真的很小,最好是一个看不见的情节

x,y =zip(*xy)
plt.plot(x,y, alpha=0.0) 

【讨论】:

  • 谢谢!你的代码对我有用,这就是我想要的,除了我使用正态分布,所以我有 xy = np.random.normal(0, 1, (10, 2)) 而是看不到任何显示:/
  • 这些值超出了绘图范围。查看更新的答案。
  • 除了非常小的值 (10^-12) 之外,缩放似乎有效。你知道如何解决这个问题吗?
  • 哪个问题?
  • 我明白了。在这种情况下,最好制作一个不可见的图而不是散点图。我更新了答案。
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
  • 2018-06-22
  • 2020-04-03
相关资源
最近更新 更多