網站首頁 編程語言 正文
本篇文章記錄一下函數的等高線及其三維圖像的可視化方法。
本例繪制的函數為:
1. 網格點
??在繪制曲線之前,先了解一下網格點的繪制。比如繪制一個3x3的網格,那么就需要9個坐標點:
(0,2)-----(1,2)-----(2,2)
(0,1)-----(1,1)-----(2,1)
(0,0)-----(1,0)-----(2,0)
??將其x軸和y軸坐標分開表示:
# x軸: [[0, 1, 2], [0, 1, 2],? [0, 1, 2]] # y軸: [[0, 0, 0], [1, 1, 1],? [2, 2, 2]]
??在numpy中可以使用np.meshgrid()來生成網格點:
import numpy as np import matplotlib.pyplot as plt # 10x10 x = np.linspace(-1.5, 1.5, num=10) y = np.linspace(-1.5, 1.5, num=10) # generate grid X, Y = np.meshgrid(x, y) plt.plot(X, Y, marker='.', linestyle='') plt.grid(True) plt.show()
2. 等高線
??繪制等高線需要的數據有點的坐標位置(x, y)以及坐標的高度z,高度z就是將坐標點(x, y)帶入函數f ( x , y ) f(x, y)f(x,y)中計算得到的,在matplotlib
中可以使用plt.contour()來繪制:
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-1.5, 1.5, num=100) y = np.linspace(-1.5, 1.5, num=100) X, Y = np.meshgrid(x, y) f = X * np.exp(-X**2 - Y**2) fig = plt.figure() plt.xlim(-1.5, 1.5) plt.ylim(-1.5, 1.5) # draw ax = plt.contour(X, Y, f, levels=10, cmap=plt.cm.cool) # add label plt.clabel(ax, inline=True) # plt.savefig('img1.png') plt.show()
?
# add color plt.contourf(X, Y, f, levels=10, cmap=plt.cm.cool) # plt.colorbar() # plt.savefig('img1.png') plt.show()
?更多的api參數請參考官方文檔。
3. 三維圖像
??函數的三維圖像的繪制需要的數據與等高線一樣,即坐標位置(x, y)以及坐標的高度z,在matplotlib中可以使用mpl_toolkits.mplot3d來繪制:
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D x = np.linspace(-1.5, 1.5, num=100) y = np.linspace(-1.5, 1.5, num=100) X, Y = np.meshgrid(x, y) f = X * np.exp(-X**2 - Y**2) fig = plt.figure() ax = Axes3D(fig) plt.xlim(-1.5, 1.5) plt.ylim(-1.5, 1.5) ax.plot_surface(X, Y, f, cmap=plt.cm.cool) # plt.savefig('img1.png') plt.show()
到此這篇關于基于python,Matplotlib繪制函數的等高線與三維圖像的文章就介紹到這了,更多相關Matplotlib繪制函數的等高線與三維圖像內容請搜索AB教程網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持AB教程網!
??有關mpl_toolkits.mplot3d的使用可以參考官方文檔;
原文鏈接:https://blog.csdn.net/qq_42730750/article/details/122564379
相關推薦
- 2023-05-30 基于CUDA?out?of?memory的一種神奇解決方式_python
- 2022-07-31 C語言數據結構算法基礎之循環隊列示例_C 語言
- 2022-02-24 Antv G2折線圖+柱狀圖 自定義圖例(legend)和tooltip
- 2022-01-29 android打包證書生成
- 2022-10-02 pandas數據類型之Series的具體使用_python
- 2022-12-24 VS2019調試C語言程序(監視操作)的詳細步驟_C 語言
- 2022-10-25 Git中bundle命令的使用詳解_相關技巧
- 2023-04-17 Python魔術方法深入分析講解_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支