小季是个研究生 2023-05-11 12:57 采纳率: 0%
浏览 915

'NoneType' object has no attribute 'pyplot_show'应该如何解决(语言-python)

#读取文件
from numpy import *
file = open("D:\pycharm\pythontd\data.txt")
lines = file.readlines()#逐行读取数据,加入到列表中
m = len(lines)#获得数据数量

#处理数据集
X_data = []
Y_data = []
for i in range(m):
    str = lines[i]
    str1 = str.split(',', 1)
    ap_x = float(str1[0])
    ap_y = float(str1[1])
    X_data.append(ap_x)
    Y_data.append(ap_y)

# x的坐标以及对应的矩阵
X_data = array(X_data).reshape(m, 1)
X_1 = ones((m, 1))
#reshape作用,改成一个矩阵
X = hstack((X_1, X_data)) #得到一个X轴矩阵
# Y坐标
Y = array(Y_data).reshape(m, 1)
# 学习率
alpha = 0.01


# 代价函数对应的梯度函数,
def gradient_function(theta, X, Y):
    diff = dot(X, theta) - Y
    return (1/m) * dot(X.transpose(), diff)


# 梯度下降迭代
def gradient_descent(X, Y, alpha):
    theta = array([1, 1]).reshape(2, 1)#自定义theta值,
    gradient = gradient_function(theta, X, Y)#梯度下降值
    i=1

    while (i<=1500):#迭代次数
        i=i+1
        theta = theta - alpha * gradient
        gradient = gradient_function(theta, X, Y)

    return theta

#打印theta值
Theta = gradient_descent(X, Y, alpha)
print('Theta0:', Theta[0],'Theta0:',Theta[1])



# 根据数据画出对应的图像
def plot(X, Y, theta):
    import matplotlib.pyplot as plt
    ax = plt.subplot(1,1,1)
    ax.scatter(X, Y, s=30, c="pink", marker="s")
    plt.xlabel("X")
    plt.ylabel("Y")
    x = arange(5.0, 23)  # x的范围
    y = theta[0] + theta[1]*x  #假设函数
    ax.plot(x, y)
    plt.show()

plot(X_data, Y, Theta)

最后运行报错,'NoneType' object has no attribute 'pyplot_show',想用梯度下降算法来实现线性回归,现在运行之后报错,图只有点没有线

img


img

img

展开全部

  • 写回答

2条回答 默认 最新

  • Code锐 2024-09-20 06:52
    关注

    这个问题很有可能是matplolib版本过高,或者和其他包有冲突造成的。先卸载现有的mat包,再安装小一两个版本的试试。我也出现过这个问题,通过降级解决了。

    评论
  • 爱晚乏客游 2023-05-12 03:02
    关注

    你这报错在哪里都不知道,报错截图就截取完整,或者详细告知是哪一行那句代码报错,你贴出来的代码跟你报错好像也没啥相关联的
    报错的意思是你某个东西是空的,但是你想XXX.pyplot_show()就报错了,看你代码里面也没有哪里调用这个pyplot_show啊

    评论
编辑
预览

报告相同问题?

问题事件

  • 修改了问题 5月12日
  • 修改了问题 5月12日
  • 创建了问题 5月11日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部