TypeError: unhashable type: 'numpy.ndarray' and plt.scatter()

TypeError: unhashable type: 'numpy.ndarray' and plt.scatter()

我在使用 plt.scatter() 函数时遇到问题。错误消息显示“Type Error: unhashable type: 'numpy.ndarray'”我希望此代码创建 x 和 y 数据帧的散点图。当我在代码中输入样本单元时,这两个数据帧的大小相同 (88,2)。

fig, ax = plt.subplots(figsize=(10,10))
plt.scatter(x,y, color='black') #this is where I am having an issue.   
plt.xlim([0,10])   
plt.ylim([0,10])   
plt.title(unit)

这是 csv 文件中的信息示例。 (数字是第一列,material 是第二列,数量是第三列,依此类推...)

     Material: Quantity: Unit: Date:
0    B         1         A     43455
1    B         1         A     43455
2    C         1         A     43455
3    C         1         A     43456
4    D         1         A     43455
5    D         1         A     43455
6    B         1         A     43455 
7    B         2         A     43455
8    B         8         A     43459
9    B         5         A     43467
10   B         3         A     43452
11   D         7         A     43451

根据 Matplotlib 文档 here plt.scatter() 的输入是:

x, yfloat or array-like, shape (n, ) The data positions.

但是在您的代码中,您传递给分散函数的是两个 pd.DataFrame。所以第一列是名称,第二列是存储值的位置:

fig, ax = plt.subplots(figsize=(10,10))
plt.scatter(x.values[:, 1], y.values[:, 1], color='black') #this is where I am having an issue.   
plt.xlim([0,10])   
plt.ylim([0,10])   
plt.title(unit)
plt.xlabel('X')
plt.ylabel('Y')