Python将2d数据绘制到3d轴上

时间:2014-05-07 01:28:24

标签: python matplotlib

我看过matplotlib's examples of 3d plots,但这些都没有给我我想要绘制的内容,例如:

enter image description here

该图显示了y轴(N)上的一系列测量值,每个测量值都有一个强度谱(p / 2hk_L),即对于您在图中看到的每条线,N是固定的。用于绘制这样的数据的最简单函数是什么?

1 个答案:

答案 0 :(得分:7)

这是一个尝试:

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

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = np.linspace(-50,50,100)
y = np.arange(25)
X,Y = np.meshgrid(x,y)
Z = np.zeros((len(y),len(x)))

for i in range(len(y)):
    damp = (i/float(len(y)))**2
    Z[i] = 5*damp*(1 - np.sqrt(np.abs(x/50)))
    Z[i] += np.random.uniform(0,.1,len(Z[i]))
ax.plot_surface(X, Y, Z, rstride=1, cstride=1000, color='w', shade=False, lw=.5)

ax.set_zlim(0, 5)
ax.set_xlim(-51, 51)
ax.set_zlabel("Intensity")
ax.view_init(20,-120)
plt.show()

enter image description here