十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍怎么在python3中使用Axes3D库绘制3D模型图,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联从2013年成立,先为岭东等服务建站,岭东等地企业,进行企业商务咨询服务。为岭东企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如C++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。
python代码
import numpy as np from scipy import stats import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 三维,两个特征 fig = plt.figure(figsize=(8, 6)) #设置图标的大小 ax = fig.add_subplot(111, projection='3d') # 111的意思是把画布分为1行1列,画在第一个方格内。其实就是整个画布。 # 创建样本,注意两个特征不能线性相关,否则无法用最小二乘解参数 X1 = np.arange(-4, 4, 0.1) m = len(X1) X2 = np.random.rand(m)*5 # print(X2) # print(X1) # 堆叠全1数组和X1以及X2形成样本的矩阵,倒置,用以矩阵乘法 X = np.vstack((np.full(m, 1), X1, X2)).T # y = 15*X1 + 3 * X2 + theta0 # 自定义样本输出 Y = X1 + 3 * X2 + 3*np.random.randn(m) # 利用标准方程(最小二乘法求解theta) theta = np.dot(np.dot(np.linalg.inv(np.dot(np.transpose(X), X)), np.transpose(X)), Y) print(theta) # 构造网格 meshgrid函数可以通过延伸矩阵构造多维坐标中的网格坐标。 M, N = np.meshgrid(X1, X2) # zip函数构建一个多元祖[(x1,y1),(x2,y2)...],ravel函数将一个多维数组合并成一维数组 Z = np.array([theta[1] * d + theta[2]*p + theta[0] for d, p in zip(np.ravel(M), np.ravel(N))]).reshape(M.shape) # 根据网格和函数构建图形 suface是一个完整的面 ax.plot_surface(M, N, Z) # scatter是散点图 ax.scatter(X1, X2, Y, c='r') # 设置坐标轴的名称 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show()
关于怎么在python3中使用Axes3D库绘制3D模型图就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。