參考上一篇的Phthon畫2D圖:

唯一的區別就是3D圖把畫筆換成了mplot3d,詳細引數見下面的程式碼塊

import matplotlib。pyplot as plt

import numpy as np

# 定義figure

fig = plt。figure()

# 建立3d圖形的兩種方式

# 1、將figure變為3d

ax = Axes3D(fig)

# 2、ax = fig。add_subplot(221, projection=‘3d’)

# 定義x, y

x = np。arange(-4, 4, 0。26)

y = np。arange(-4, 4, 0。26)

# 生成網格資料,相當於笛卡爾積

X, Y = np。meshgrid(x, y)

# 計算每個點對的長度

R = np。sqrt(X ** 2 + Y ** 2)

Z = np。sin(R)

# 繪製3D曲面

ax。plot_surface(X, Y, Z, rstride = 1, cstride = 1, cmap = plt。get_cmap(‘coolwarm’))

# rstride:行之間的跨度 cstride:列之間的跨度

# rcount:設定間隔個數,預設50個,ccount:列的間隔個數 不能與上面兩個引數同時出現

# cmap引數可以控制三維曲面的顏色組合, 一般三維曲面就是 rainbow 的,可以使用collwarm

# 你也可以修改 rainbow 為 coolwarm, 驗證我的結論

# 底部的投影

ax。contour(X, Y, Z, zdir = ‘z’, offset = -1, cmap = plt。get_cmap(‘rainbow’))

# zdir 可選 ‘z’|‘x’|‘y’| 分別表示投影到z,x,y平面

# zdir = ‘z’, offset = -1 表示投影到z = -1上

# 設定z軸的維度,x,y類似

ax。set_zlim(-2, 2)

plt。show()

Python繪製3D圖