matplotlib繪制三維曲面


用到個簡單曲面,自己用PS或者PPT怎么也畫不出來,那就用matplotlib畫吧

import numpy as np
import matplotlib.pyplot as mp
from mpl_toolkits.mplot3d import Axes3D

# 准備數據
#n越大,圖像越細膩
n = 10000
x, y = np.meshgrid(np.linspace(-1, 1, n),
                   np.linspace(-0.05, 0.05, n))
#核心函數,控制曲面形狀
z =-(10*x*x+y)

# 繪制圖片
fig = mp.figure("3D Surface", facecolor="lightgray")
mp.title("3D Surface", fontsize=18)

# 設置為3D圖片類型
ax3d = Axes3D(fig)
# ax3d = mp.gca(projection="3d")    # 同樣可以實現

ax3d.set_xlabel("X")
ax3d.set_ylabel("Y")
ax3d.set_zlabel("Z")

#ax3d.set_zlim3d(-10,0)
mp.tick_params(labelsize=10)

#顏色是有高級感的紫
ax3d.plot_surface(x, y, z, cstride=20, rstride=20,color='#826677')

#改變視角,elev:沿着y軸旋轉,azim:沿着z軸旋轉
ax3d.view_init(elev=70., azim=82)

#關閉坐標軸
ax3d.set_xticks([]) 
ax3d.set_yticks([])
ax3d.set_zticks([])

# Get rid of the panes                          
ax3d.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 
ax3d.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 
ax3d.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 0.0)) 

# Get rid of the spines                         
ax3d.w_xaxis.line.set_color((1.0, 1.0, 1.0, 0.0)) 
ax3d.w_yaxis.line.set_color((1.0, 1.0, 1.0, 0.0)) 
ax3d.w_zaxis.line.set_color((1.0, 1.0, 1.0, 0.0))
#400dpi已經很清楚了
mp.savefig('/content/sample_data/pic.jpg',dpi=400)
mp.show()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM