python 理解Matplotlib 3D (三维图) 绘图函数 plot_surface 的 rstride 和 cstride参数
生活随笔
收集整理的這篇文章主要介紹了
python 理解Matplotlib 3D (三维图) 绘图函数 plot_surface 的 rstride 和 cstride参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
總而言之, rstride 和 cstride是用來控制行平滑程度和列平滑程度的參數.
-
其值最小為1, 最大可以無窮大, 但如果超過了X或Y的默認柵格數后, 將對圖像無影響.
-
當rstride 和 cstride的值為1時, 圖像不會變化, 增加rstride 和 cstride的值, 會減少三維圖像的平滑程度, 當其等于X或Y的默認柵格數時, 就變成一個單色面
-
例如, 圖像的X和Y默認柵格數為[4-(-4)]/0.25=40時:
-
當rstride=cstride=1, 圖像為:
-
當rstride=cstride=4, 圖像為:
-
當rstride=cstride=40, 圖像為:
-
當rstride=cstride=80, 圖像為(可以看出相較rstride=cstride=40, 圖像并未發生變化):
-
參考代碼:
-- coding: utf-8 --
# author: inspurer(月小水長) # pc_type lenovo # create_date: 2019/1/23 # file_name: 3DTest # github https://github.com/inspurer # qq_mail 2391527690@qq.com# -*- coding: utf-8 -*- """ 繪制3d圖形 """import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D # 定義figure fig = plt.figure() # 創建3d圖形的兩種方式 # 將figure變為3d ax = Axes3D(fig)#ax = fig.add_subplot(111, projection='3d')# 定義x, y x = np.arange(-4, 4, 0.25) y = np.arange(-4, 4, 0.25)# 生成網格數據 X, Y = np.meshgrid(x, y)# 計算每個點對的長度 R = np.sqrt(X ** 2 + Y ** 2) # 計算Z軸的高度 Z = np.sin(R)# 繪制3D曲面# rstride:行之間的跨度 cstride:列之間的跨度 # rcount:設置間隔個數,默認50個,ccount:列的間隔個數 不能與上面兩個參數同時出現# cmap是顏色映射表 # from matplotlib import cm # ax.plot_surface(X, Y, Z, rstride = 1, cstride = 1, cmap = cm.coolwarm) # cmap = "rainbow" 亦可 # 我的理解的 改變cmap參數可以控制三維曲面的顏色組合, 一般我們見到的三維曲面就是 rainbow 的 # 你也可以修改 rainbow 為 coolwarm, 驗證我的結論 ax.plot_surface(X, Y, Z, rstride = 1, cstride = 1, cmap = plt.get_cmap('rainbow'))# 繪制從3D曲面到底部的投影,zdir 可選 'z'|'x'|'y'| 分別表示投影到z,x,y平面 # zdir = 'z', offset = -2 表示投影到z = -2上 ax.contour(X, Y, Z, zdir = 'z', offset = -2, cmap = plt.get_cmap('rainbow'))# 設置z軸的維度,x,y類似 ax.set_zlim(-2, 2)plt.show()引用文章
https://blog.csdn.net/ygdxt/article/details/86618606
總結
以上是生活随笔為你收集整理的python 理解Matplotlib 3D (三维图) 绘图函数 plot_surface 的 rstride 和 cstride参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python matplotlib.fi
- 下一篇: Yolo-v2 Visual Studi