通常 x 和 y 输入值会合并为一个坐标点。 使用列表,就可以了:
import matplotlib.pyplot as plt
import numpy as np
a = [5,6]
plt.scatter(a[0],a[1])
plt.show() # shows one point at 5,6. OK
在 x 和 y 中使用具有相同值的 numpy:
b=np.array([[4],[4]])
plt.scatter(b[:,0],b[:,0])
plt.show() # shows one point at 4,4. OK
但是使用 numpy 在 x 和 y 中具有不同的值:
c=np.array([[5],[6]])
plt.scatter(c[:,0],c[:,0])
plt.show() # shows points at 5,5 and 6,6. Problem
Matplotlib 正在按预期运行。第一个参数给出 x 值,第二个参数给出 y 值。在你的最后一个例子中,
print(c[:,0]) # array([5, 6])
因此,您将 x 值设置为
[5, 6]
,将 y 值设置为 [5, 6]
。这些点是一对一匹配绘制的。因此,x 和 y 的第一个值是 [5, 5]
,第二个值是 [6, 6]
,因此是绘图结果。