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
知道如何处理的数字类型。当然,这是假设数组仅包含表示有效数字的字符串。
我正在尝试使用 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
知道如何处理的数字类型。当然,这是假设数组仅包含表示有效数字的字符串。