python 利用matplotlib在3D空間繪制二次拋物面的案例
圖形預(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)文章
使用 setuptools 在 Python 中安裝 egg 
Eggs 是 Python 中以前使用的一種分發(fā)格式,它包含特定項(xiàng)目所需的信息,從依賴項(xiàng)到環(huán)境變量,在本文中,我們將討論如何在 Python 中安裝 egg 文件,以及可用于實(shí)現(xiàn)此操作的工具,感興趣的朋友一起看看吧2023-08-08Python assert關(guān)鍵字原理及實(shí)例解析
這篇文章主要介紹了Python assert關(guān)鍵字原理及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python2.7實(shí)現(xiàn)多進(jìn)程下開發(fā)多線程示例
這篇文章主要為大家詳細(xì)介紹了Python2.7實(shí)現(xiàn)多進(jìn)程下開發(fā)多線程示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05python turtle工具繪制四葉草的實(shí)例分享
在本篇文章里小編給各位整理的是關(guān)于python turtle工具繪制四葉草的實(shí)例分享,有興趣的朋友們可以跟著學(xué)習(xí)下。2020-02-02Python中使用logging模塊代替print(logging簡明指南)
這篇文章主要介紹了Python中使用logging模塊代替print的好處說明,主旨是logging模塊簡明指南,logging模塊的使用方法介紹,需要的朋友可以參考下2014-07-07基于Python實(shí)現(xiàn)復(fù)刻人生重開模擬器
人生重開模擬器是由VickScarlet上傳至GitHub的一款簡單的文字網(wǎng)頁游戲。本文將用Python復(fù)刻一下這個(gè)游戲,感興趣的小伙伴可以嘗試一下2022-10-10Python實(shí)現(xiàn)求一個(gè)集合所有子集的示例
今天小編就為大家分享一篇Python 實(shí)現(xiàn)求一個(gè)集合所有子集的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05