pyplot.scatter() 绘制点但没有有意义的轴?

pyplot.scatter() plots points but has no meaningful axes?

我正在尝试使用 Matplotlib 制作一个简单的散点图。我正在为 x 传递一个 Numpy 数组,为 y 传递另一个数组:

df = df.to_numpy()    # this was originally a pandas DataFrame
print(df)

plt.scatter(df[:,1], df[:,2])
plt.show()

打印输出:

[['B' '-693.3127738066283' '19.14412552031358']
 ['B' '-1633.974496310751' '40.13395450795514']
 ['B' '-2010.8973373308845' '-37.64969595561755']
 ...
 ['R' '-1034.7669874549774' '-76.93110447814361']
 ['R' '745.6579736997674' '-51.74835753276244']
 ['R' '-1473.8940519681794' '-28.58246870754514']]

然而,绘图输出如下:

为了更好地了解正在发生的事情,如果我只绘制前三个数据点,它看起来像这样:

因此正在“绘制”x 坐标和 y 坐标,但坐标轴没有有意义的比例或值。为什么会发生这种情况,如何制作常规散点图?

正如您从打印件中看到的那样,df 仅包含字符串。 matplotlib 不知道如何处理它们。

变化:

plt.scatter(df[:,1], df[:,2])

与:

plt.scatter(df[:,1].astype(float), df[:,2].astype(float))

它所做的是将数组转换为 matplotlib 知道如何处理的数字类型。当然,这是假设数组仅包含表示有效数字的字符串。