簡體   English   中英

matplotlib:2D圖中的3D線框圖

[英]matplotlib: 3D wireframe plot from 2D plots

我有一些數據,我編寫了代碼將其繪制為散點圖:

import matplotlib as mpl
from mpl_toolkits.mplot3d.axes3d import Axes3D
import numpy as np

x = np.linspace(-20, 0, 50)
z1 = np.random.randn(50) 
z2 = np.random.randn(50)
z3 = np.random.randn(50)
z4 = np.random.randn(50)
z5 = np.random.randn(50)
z6 = np.random.randn(50)

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter3D(xs=x, zs=z1, ys=[0.6]*50, zdir='z', alpha=1)
ax.scatter3D(xs=x, zs=z2, ys=[0.8]*50, zdir='z', alpha=1)
ax.scatter3D(xs=x, zs=z3, ys=[1.02]*50, zdir='z', alpha=1)
ax.scatter3D(xs=x, zs=z4, ys=[1.2]*50, zdir='z', alpha=1)
ax.scatter3D(xs=x, zs=z5, ys=[1.4]*50, zdir='z', alpha=1)
ax.scatter3D(xs=x, zs=z6, ys=[1.6]*50, zdir='z', alpha=1)
plt.show()

如何從中繪制線框圖? (我想通過網格連接這些點)。

謝謝

簡單地使用numpy.meshgrid來生成x和y網格和z值一起使用堆棧numpy.vstack

X,Y = np.meshgrid(x,np.asarray([0.6,0.8,1.02,1.2,1.4,1.6]))
Z = np.vstack((z1,z2,z3,z4,z5,z6))
ax.plot_wireframe(X,Y,Z)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM