python 利用matplotlib在3D空間繪制二次拋物面的案例
更新時(shí)間:2021年02月06日 11:15:49 作者:賞爾
這篇文章主要介紹了python 利用matplotlib在3D空間繪制二次拋物面的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
圖形預(yù)覽:

0、import
import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D
1、開口向上的拋物面
fig = plt.figure(figsize=(9,6),
facecolor='khaki'
)
ax = fig.gca(projection='3d')
# 二元函數(shù)定義域平面集
x = np.linspace(start=-3,
stop=3,
num=100
)
y = np.linspace(start=-3,
stop=3,
num=100
)
X, Y = np.meshgrid(x, y) # 網(wǎng)格數(shù)據(jù)
Z = np.power(X, 2) + np.power(Y, 2) # 二元函數(shù) z = x**2 + y**2
# 繪圖
surf = ax.plot_surface(X=X,
Y=Y,
Z=Z,
rstride=2, # row stride, 行跨度
cstride=2, # column stride, 列跨度
color='r',
linewidth=0.5,
)
# 調(diào)整視角
ax.view_init(elev=7, # 仰角
azim=30 # 方位角
)
# 顯示圖形
plt.show()
圖形:

2、開口向下的拋物面
fig = plt.figure(figsize=(9,6),
facecolor='khaki'
)
ax = fig.gca(projection='3d')
# 二元函數(shù)定義域平面集
x = np.linspace(start=-3,
stop=3,
num=100
)
y = np.linspace(start=-3,
stop=3,
num=100
)
X, Y = np.meshgrid(x, y) # 網(wǎng)格數(shù)據(jù)
Z = np.power(X, 2) + np.power(Y, 2) # 二元函數(shù) z = x**2 + y**2
# 繪圖
surf = ax.plot_surface(X=X,
Y=Y,
Z=-Z,
rstride=2, # row stride, 行跨度
cstride=2, # column stride, 列跨度
color='g',
linewidth=0.5,
)
# 調(diào)整視角
ax.view_init(elev=7, # 仰角
azim=30 # 方位角
)
# 顯示圖形
plt.show()
圖形:

3、用多子區(qū)顯示不同拋物面
fig = plt.figure(figsize=(24, 16),
facecolor='khaki'
)
# 二元函數(shù)定義域平面集
x = np.linspace(start=-3,
stop=3,
num=100
)
y = np.linspace(start=-3,
stop=3,
num=100
)
X, Y = np.meshgrid(x, y) # 網(wǎng)格數(shù)據(jù)
Z = np.power(X, 2) + np.power(Y, 2) # 二元函數(shù) z = x**2 + y**2
# -------------------------------- subplot(221) --------------------------------
ax = fig.add_subplot(221, projection='3d')
# 開口向上的拋物面
surf = ax.plot_surface(X=X,
Y=Y,
Z=Z,
rstride=2, # row stride, 行跨度
cstride=2, # column stride, 列跨度
color='r',
linewidth=0.5,
)
# -------------------------------- subplot(223) --------------------------------
ax = fig.add_subplot(223, projection='3d')
# 開口向下的拋物面
surf = ax.plot_surface(X=X,
Y=Y,
Z=-Z,
rstride=2, # row stride, 行跨度
cstride=2, # column stride, 列跨度
color='g',
linewidth=0.5,
)
# -------------------------------- subplot(22, (2,4)) --------------------------------
ax = plt.subplot2grid(shape=(2,2),
loc=(0, 1),
rowspan=2,
projection='3d'
)
# 開口向上的拋物面
surf1 = ax.plot_surface(X=X,
Y=Y,
Z=Z,
rstride=2, # row stride, 行跨度
cstride=2, # column stride, 列跨度
color='r',
linewidth=0.5,
)
# 開口向下的拋物面
surf2 = ax.plot_surface(X=X,
Y=Y,
Z=-Z,
rstride=2, # row stride, 行跨度
cstride=2, # column stride, 列跨度
color='g',
linewidth=0.5,
)
# 調(diào)整視角
ax.view_init(elev=7, # 仰角
azim=30 # 方位角
)
# -------------------------------- fig --------------------------------
# 調(diào)整子區(qū)布局
fig.subplots_adjust(wspace=0.1, # width space
hspace=0.15 # height space
)
# 顯示圖形
plt.show()
圖形:

軟件版本:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python程序員面試題 你必須提前準(zhǔn)備!(答案及解析)
這篇文章主要為大家解析了你必須提前準(zhǔn)備的Python程序員面試題答案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
關(guān)于Python的GPU編程實(shí)例近鄰表計(jì)算的講解
本文主要講解了Python的GPU編程實(shí)例近鄰表計(jì)算,通過一個(gè)近鄰表計(jì)算的案例,給出了適用于GPU加速的計(jì)算場(chǎng)景。需要了解的朋友可以參考一下這篇文章2021-08-08
Python中使用Selenium環(huán)境安裝的方法步驟
這篇文章主要介紹了Python中使用Selenium環(huán)境安裝的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Python如何從txt文件中提取特定數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于Python如何從txt文件中提取特定數(shù)據(jù)的相關(guān)資料,有時(shí)我們會(huì)遇到需要按行讀取文本的情況,我們要讀取txt文件獲得數(shù)據(jù),需要的朋友可以參考下2023-08-08
django自帶serializers序列化返回指定字段的方法
今天小編就為大家分享一篇django自帶serializers序列化返回指定字段的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
django實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊(cè)一次的實(shí)例
下面小編就為大家?guī)硪黄猟jango實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊(cè)一次的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11

