类型错误:不可散列类型:'numpy.ndarray' 和 plt.scatter()

阿什莉·斯坦菲尔德

我遇到了 plt.scatter() 函数的问题。错误消息说'类型错误:不可散列类型:'numpy.ndarray''我希望此代码创建 x 和 y 数据帧的散点图。当我在代码中输入一个样本单元时,这两个数据帧的大小相同 (88,2)。

import statistics  
import pandas as pd  
import numpy as np  
import matplotlib.pyplot as plt  
import os


df=pd.read_csv('example.csv') 



unit=(input("Enter unit here:"))  
ind1 = df['Unit'] == unit   
unitrows=ind1[ind1].index 


df=df.iloc[unitrows,:]

df=df['Date'].groupby([df.Material]).apply(list).reset_index()  

def ADIFinal(df):  
    docdtmeans=[] 
    for index, row in df.iterrows():
        x=np.diff((sorted(row['Date']))) 
        x=x[x!=0] 
        if x.any(): 
            x=abs(statistics.mean(x)) 
        else: 
            x=None 
        docdtmeans.append(x) 
    d={'Material':df['Material'], 'ADI':docdtmeans} 
    dfmeans=pd.DataFrame(data=d) 
    return dfmeans 

x=ADIFinal(df)
print(x) 

df=pd.read_csv('example.csv') 
df=df.iloc[unitrows,:] 
df=df['Quantity'].groupby([df.Material]).apply(list).reset_index()



def CV2Final(df):  
      cv2=[] 
      for index, row in df.iterrows(): 
        z=row['Quantity'] 
        if len(z)>1: 
            z=((((statistics.stdev(z)/statistics.mean(z)))**2))
        else:
            z=None 
        cv2.append(z) 
      d={'Material':df['Material'], 'cv2':cv2} 
      dfcv2=pd.DataFrame(data=d) 
      return dfcv2
y=CV2Final(df)   
print(y) 

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
阿明德

根据此处Matplotlib 文档,输入为plt.scatter()

x, yfloat 或类似数组的, 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')

散点图

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Tensorflow 错误“不可散列的类型:'numpy.ndarray'”

不可散列的类型:用于优化的“ numpy.ndarray”

TypeError:不可散列的类型:Python中的“ numpy.ndarray”

将日期时间转换为日期 python --> 错误:不可散列类型:'numpy.ndarray'

df ['X']。unique()和TypeError:无法散列的类型:'numpy.ndarray'

如何解决不可散列类型的问题:“ numpy.ndarray”

TypeError:数据透视表上不可散列的numpy.ndarray类型

TypeError:不可散列的类型:'numpy.ndarray',计数器行

tensorflow TypeError:无法散列的类型:'numpy.ndarray'

eval抛出“ TypeError:无法散列的类型:'numpy.ndarray'”

TypeError:无法散列的类型:'numpy.ndarray'

熊猫无法散列的类型:“ numpy.ndarray”与熊猫groupby

无法删除TypeError:无法散列的类型:“ numpy.ndarray”

在python中TypeError:无法散列的类型:'numpy.ndarray'

TypeError:无法散列的类型:'numpy.ndarray'-如何在执行query()时解决此错误

类型错误:不可散列的类型“list”或“numpy.ndarrary”

类型错误:@ 不支持的操作数类型:'numpy.ndarray' 和 'Tensor'

Plt.Scatter:如何添加标题和xlabel和ylabel

NumPy ndarray dtype的类型提示?

为什么sns.lmplot和FacetGrid + plt.scatter从同一数据创建不同的散点?

熊猫groupby抛出:TypeError:无法散列的类型:'numpy.ndarray'

Python 3.x-TypeError:无法散列的类型:'numpy.ndarray'

Keras拟合模型:TypeError:不可哈希类型:'numpy.ndarray'

Lambda函数-TypeError:不可哈希类型:'numpy.ndarray'

来自 Pandas df 的绘图集和类型错误不可散列的类型:'set'

TypeError:-:'str'和'numpy.ndarray'的不受支持的操作数类型

+不支持的操作数类型:“ numpy.ndarray”和“ str”

cython和numpy:'cfunc.to_py:65:25:'ndarray'不是类型标识符'

带numpy ndarray和pandas数据框的mypy重载函数(签名参数类型相同或更大)