matplotlib 3D功能区图

5 python 3d numpy matplotlib scipy

我正在使用NumPy 1.6.2,SciPy 0.11.0,Matplotlib 1.1.1。我可以像图中那样绘制色带吗?

在此处输入图片说明

小智 4

这是完整的代码。

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

data=np.genfromtxt('fluorescence_2.txt')
x=data[:,0]
fig=plt.figure()
ax=fig.gca(projection='3d')

for i in range(1,17,2):
    y=data[:,i]
    z=data[:,i+1]
    xi=np.linspace(min(x),max(x))
    yi=np.linspace(min(y),max(y))
    X,Y=np.meshgrid(xi,yi)
    Z=griddata(x,y,z,xi,yi)
    ax.plot_surface(X,Y,Z,rstride=50,cstride=1,cmap='RdYlBu')
    ax.set_zlim3d(np.min(Z),np.max(Z))

ax.set_title('Fluorescence spectra (WL ex = 350 nm)')
ax.set_xlabel('WL em (nm)')
ax.set_ylabel('Spectrum')
ax.set_yticks([])
ax.set_zlabel('Emission')
plt.show()
Run Code Online (Sandbox Code Playgroud)