溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在python3中使用Axes3D庫(kù)繪制3D模型圖

發(fā)布時(shí)間:2021-04-30 15:51:35 來(lái)源:億速云 閱讀:603 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹怎么在python3中使用Axes3D庫(kù)繪制3D模型圖,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

python的五大特點(diǎn)是什么

python的五大特點(diǎn):1.簡(jiǎn)單易學(xué),開發(fā)程序時(shí),專注的是解決問題,而不是搞明白語(yǔ)言本身。2.面向?qū)ο?,與其他主要的語(yǔ)言如C++和Java相比, Python以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?.可移植性,Python程序無(wú)需修改就可以在各種平臺(tái)上運(yùn)行。4.解釋性,Python語(yǔ)言寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序。5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。

python代碼

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 三維,兩個(gè)特征
fig = plt.figure(figsize=(8, 6)) #設(shè)置圖標(biāo)的大小
ax = fig.add_subplot(111, projection='3d') # 111的意思是把畫布分為1行1列,畫在第一個(gè)方格內(nèi)。其實(shí)就是整個(gè)畫布。

# 創(chuàng)建樣本,注意兩個(gè)特征不能線性相關(guān),否則無(wú)法用最小二乘解參數(shù)
X1 = np.arange(-4, 4, 0.1)
m = len(X1)
X2 = np.random.rand(m)*5
# print(X2)
# print(X1)

# 堆疊全1數(shù)組和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)

# 利用標(biāo)準(zhǔn)方程(最小二乘法求解theta)
theta = np.dot(np.dot(np.linalg.inv(np.dot(np.transpose(X), X)),
np.transpose(X)), Y)
print(theta)

# 構(gòu)造網(wǎng)格 meshgrid函數(shù)可以通過延伸矩陣構(gòu)造多維坐標(biāo)中的網(wǎng)格坐標(biāo)。
M, N = np.meshgrid(X1, X2)

# zip函數(shù)構(gòu)建一個(gè)多元祖[(x1,y1),(x2,y2)...],ravel函數(shù)將一個(gè)多維數(shù)組合并成一維數(shù)組
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)

# 根據(jù)網(wǎng)格和函數(shù)構(gòu)建圖形 suface是一個(gè)完整的面
ax.plot_surface(M, N, Z)
# scatter是散點(diǎn)圖
ax.scatter(X1, X2, Y, c='r')
# 設(shè)置坐標(biāo)軸的名稱
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

關(guān)于怎么在python3中使用Axes3D庫(kù)繪制3D模型圖就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI