日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python的三维图片_python如何做三维图

發(fā)布時(shí)間:2024/7/5 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的三维图片_python如何做三维图 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python三維繪圖

在遇到三維數(shù)據(jù)時(shí),三維圖像能給我們對(duì)數(shù)據(jù)帶來(lái)更加深入地理解。python的matplotlib庫(kù)就包含了豐富的三維繪圖工具。

1、創(chuàng)建三維坐標(biāo)軸對(duì)象Axes3D

創(chuàng)建Axes3D主要有兩種方式,一種是利用關(guān)鍵字projection='3d'l來(lái)實(shí)現(xiàn),另一種則是通過(guò)從mpl_toolkits.mplot3d導(dǎo)入對(duì)象Axes3D來(lái)實(shí)現(xiàn),目的都是生成具有三維格式的對(duì)象Axes3D。#方法一,利用關(guān)鍵字

from?matplotlib?import?pyplot?as?plt

from?mpl_toolkits.mplot3d?import?Axes3D

#定義坐標(biāo)軸

fig?=?plt.figure()

ax1?=?plt.axes(projection='3d')

#ax?=?fig.add_subplot(111,projection='3d')??#這種方法也可以畫(huà)多個(gè)子圖

#方法二,利用三維軸方法

from?matplotlib?import?pyplot?as?plt

from?mpl_toolkits.mplot3d?import?Axes3D

#定義圖像和三維格式坐標(biāo)軸

fig=plt.figure()

ax2?=?Axes3D(fig)

2、三維曲線和散點(diǎn)

隨后在定義的坐標(biāo)軸上畫(huà)圖:import?numpy?as?np

z?=?np.linspace(0,13,1000)

x?=?5*np.sin(z)

y?=?5*np.cos(z)

zd?=?13*np.random.random(100)

xd?=?5*np.sin(zd)

yd?=?5*np.cos(zd)

ax1.scatter3D(xd,yd,zd,?cmap='Blues')??#繪制散點(diǎn)圖

ax1.plot3D(x,y,z,'gray')????#繪制空間曲線

plt.show()

3、三維曲面

下一步畫(huà)三維曲面:fig?=?plt.figure()??#定義新的三維坐標(biāo)軸

ax3?=?plt.axes(projection='3d')

#定義三維數(shù)據(jù)

xx?=?np.arange(-5,5,0.5)

yy?=?np.arange(-5,5,0.5)

X,?Y?=?np.meshgrid(xx,?yy)

Z?=?np.sin(X)+np.cos(Y)

#作圖

ax3.plot_surface(X,Y,Z,cmap='rainbow')

#ax3.contour(X,Y,Z,?zdim='z',offset=-2,cmap='rainbow)???#等高線圖,要設(shè)置offset,為Z的最小值

plt.show()

如果加入渲染時(shí)的步長(zhǎng),會(huì)得到更加清晰細(xì)膩的圖像:

ax3.plot_surface(X,Y,Z,rstride = 1, cstride = 1,cmap='rainbow'),其中的row和cloum_stride為橫豎方向的繪圖采樣步長(zhǎng),越小繪圖越精細(xì)。

4、等高線

同時(shí)還可以將等高線投影到不同的面上:from?matplotlib?import?pyplot?as?plt

from?mpl_toolkits.mplot3d?import?Axes3D

#定義坐標(biāo)軸

fig4?=?plt.figure()

ax4?=?plt.axes(projection='3d')

#生成三維數(shù)據(jù)

xx?=?np.arange(-5,5,0.1)

yy?=?np.arange(-5,5,0.1)

X,?Y?=?np.meshgrid(xx,?yy)

Z?=?np.sin(np.sqrt(X**2+Y**2))

#作圖

ax4.plot_surface(X,Y,Z,alpha=0.3,cmap='winter')?????#生成表面,?alpha?用于控制透明度

ax4.contour(X,Y,Z,zdir='z',?offset=-3,cmap="rainbow")??#生成z方向投影,投到x-y平面

ax4.contour(X,Y,Z,zdir='x',?offset=-6,cmap="rainbow")??#生成x方向投影,投到y(tǒng)-z平面

ax4.contour(X,Y,Z,zdir='y',?offset=6,cmap="rainbow")???#生成y方向投影,投到x-z平面

#ax4.contourf(X,Y,Z,zdir='y',?offset=6,cmap="rainbow")???#生成y方向投影填充,投到x-z平面,contourf()函數(shù)

#設(shè)定顯示范圍

ax4.set_xlabel('X')

ax4.set_xlim(-6,?4)??#拉開(kāi)坐標(biāo)軸范圍顯示投影

ax4.set_ylabel('Y')

ax4.set_ylim(-4,?6)

ax4.set_zlabel('Z')

ax4.set_zlim(-3,?3)

plt.show()

5、隨機(jī)散點(diǎn)圖

可以利用scatter()生成各種不同大小,顏色的散點(diǎn)圖,其參數(shù)如下:#函數(shù)定義

matplotlib.pyplot.scatter(x,?y,

s=None,???#散點(diǎn)的大小?array??scalar

c=None,???#顏色序列???array、sequency

marker=None,???#點(diǎn)的樣式

cmap=None,????#colormap?顏色樣式

norm=None,????#歸一化??歸一化的顏色camp

vmin=None,?vmax=None,????#對(duì)應(yīng)上面的歸一化范圍

alpha=None,?????#透明度

linewidths=None,???#線寬

verts=None,???#

edgecolors=None,??#邊緣顏色

data=None,

**kwargs

)

#ref:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.htmlfrom?matplotlib?import?pyplot?as?plt

from?mpl_toolkits.mplot3d?import?Axes3D

#定義坐標(biāo)軸

fig4?=?plt.figure()

ax4?=?plt.axes(projection='3d')

#生成三維數(shù)據(jù)

xx?=?np.random.random(20)*10-5???#取100個(gè)隨機(jī)數(shù),范圍在5~5之間

yy?=?np.random.random(20)*10-5

X,?Y?=?np.meshgrid(xx,?yy)

Z?=?np.sin(np.sqrt(X**2+Y**2))

#作圖

ax4.scatter(X,Y,Z,alpha=0.3,c=np.random.random(400),s=np.random.randint(10,20,?size=(20,?40)))

#生成散點(diǎn).利用c控制顏色序列,s控制大小

#設(shè)定顯示范圍

plt.show()

眾多python培訓(xùn)視頻,盡在python學(xué)習(xí)網(wǎng),歡迎在線學(xué)習(xí)!

總結(jié)

以上是生活随笔為你收集整理的python的三维图片_python如何做三维图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。