python 利用matplotlib在3D空間繪制二次拋物面的案例
更新時間:2021年02月06日 11:15:49 作者:賞爾
這篇文章主要介紹了python 利用matplotlib在3D空間繪制二次拋物面的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
圖形預覽:
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()
圖形:
軟件版本:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
使用 setuptools 在 Python 中安裝 egg 
Eggs 是 Python 中以前使用的一種分發(fā)格式,它包含特定項目所需的信息,從依賴項到環(huán)境變量,在本文中,我們將討論如何在 Python 中安裝 egg 文件,以及可用于實現(xiàn)此操作的工具,感興趣的朋友一起看看吧2023-08-08Python2.7實現(xiàn)多進程下開發(fā)多線程示例
這篇文章主要為大家詳細介紹了Python2.7實現(xiàn)多進程下開發(fā)多線程示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05Python中使用logging模塊代替print(logging簡明指南)
這篇文章主要介紹了Python中使用logging模塊代替print的好處說明,主旨是logging模塊簡明指南,logging模塊的使用方法介紹,需要的朋友可以參考下2014-07-07