【问题标题】:TypeError: unhashable type: 'numpy.ndarray' and plt.scatter()TypeError: unhashable type: 'numpy.ndarray' 和 plt.scatter()
【发布时间】:2021-08-31 13:50:55
【问题描述】:

我遇到了 plt.scatter() 函数的问题。错误消息显示“类型错误:不可散列的类型:'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: 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

【问题讨论】:

  • 您能放一小部分 csv 文件,以便我们复制您的问题吗?
  • 我不确定如何上传 csv,但我在问题的末尾添加了一个应该与代码一起使用的示例 csv。

标签: python dataframe numpy csv scatter-plot


【解决方案1】:

基于 Matplotlib 文档 hereplt.scatter() 的输入是:

x, yfloat or array-like, shape (n, ) 数据位置。

但在您的代码中,您传递给 scatter 函数的是两个 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')

【讨论】:

  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多