暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Axes3D绘制3d图不出图解决办法【Python】

原创 Twilight 2023-09-03
292

运行下面一段代码:

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D#这里设函数为y=3x+2x_data = [1.0,2.0,3.0]y_data = [5.0,8.0,11.0]def forward(x):    return x * w + bdef loss(x,y):    y_pred = forward(x)    return (y_pred-y)*(y_pred-y)mse_list = []W=np.arange(0.0,4.1,0.1)B=np.arange(0.0,4.1,0.1)[w,b]=np.meshgrid(W,B)l_sum = 0for x_val, y_val in zip(x_data, y_data):    y_pred_val = forward(x_val)    print(y_pred_val)    loss_val = loss(x_val, y_val)    l_sum += loss_valfig = plt.figure()ax = Axes3D(fig)ax.plot_surface(w, b, l_sum/3)plt.show(block=True)

可能出现的结果是:(版本问题导致)


解决办法:

添加一条代码:

fig.add_axes(ax)


全部完整代码如下:

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D#这里设函数为y=3x+2x_data = [1.0,2.0,3.0]y_data = [5.0,8.0,11.0]def forward(x):    return x * w + bdef loss(x,y):    y_pred = forward(x)    return (y_pred-y)*(y_pred-y)mse_list = []W=np.arange(0.0,4.1,0.1)B=np.arange(0.0,4.1,0.1)[w,b]=np.meshgrid(W,B)l_sum = 0for x_val, y_val in zip(x_data, y_data):    y_pred_val = forward(x_val)    print(y_pred_val)    loss_val = loss(x_val, y_val)    l_sum += loss_valfig = plt.figure()ax = Axes3D(fig)fig.add_axes(ax)ax.plot_surface(w, b, l_sum/3)plt.show(block=True)

ok.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论