m0_62049903 2021-12-20 15:18 采纳率: 0%
浏览 1274

线性回归用matplotlib画图报错unhashable type: 'numpy.ndarray'

做线性回归时,用matplotlib画散点图和直线报错unhashable type: 'numpy.ndarray'

相关代码

from sklearn.linear_model import LinearRegression 
x=data['(rm-rf)2'].str.strip("%").to_numpy().reshape(-1,1)
y=data['ri'].str.strip("%").to_numpy().reshape(-1,1)

LR=LinearRegression()
LR.fit(x,y)
y_pred=LR.predict(x)

fit_score=LR.score(x,y)
print(fit_score)
beta=LR.coef_
alpha=LR.intercept_
print(beta)
print(alpha)

from matplotlib import pyplot as plt
plt.scatter(x,y)
plt.plot(x,y_pred,color='red')
plt.show

报错:


TypeError                                 Traceback (most recent call last)
<ipython-input-94-aaddd5845bbe> in <module>
     15 
     16 from matplotlib import pyplot as plt
---> 17 plt.scatter(x,y)
     18 plt.plot(x,y_pred,color='red')
     19 plt.show


我尝试着把17行scatter括号后面的“x”、“y”改成“x.tolist()"、“y.tolist”。结果就是:蓝色的散点出来了,于是下一行(18行)的x和y_pred我也改了,但是那条直线仍然出不来。
没辙了,哪位大神帮忙看一下,万分感谢!你妈广场舞必C位,你买菜必打折!
  • 写回答

1条回答 默认 最新

  • CSDN专家-黄老师 2021-12-21 10:52
    关注

    你要将xy转换为numpy.ndarray格式,你可以看看这个例子:

    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(0)
    x = np.random.rand(20)
    y = np.random.rand(20)
    print(type(x))
    print(type(y))
    area = (50 * np.random.rand(20)) ** 2
    
    plt.scatter(x, y, s=area, alpha=0.5)
    plt.show()
    
    

    img

    评论

报告相同问题?

问题事件

  • 创建了问题 12月20日

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号