Я хотел бы построить заполненную контурную диаграмму, которая показывает изменение потоков с вертикальными уровнями для разных волновых чисел. Ось X - это волновое число. Ось Y представляет вертикальные уровни.
У меня есть 70 различных файлов, каждый из которых представляет определенный уровень. В каждом файле у меня есть два столбца, которые являются волновым числом и потоком. Для соответствующего волнового числа и вертикального уровня необходимо построить график потока. Я приложил две фотографии того, как это должно выглядеть и что я получаю. Я не понимаю, что кажется неправильным при чтении файлов. Любая помощь будет оценена.
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
filelist=[]
for i in range(1,71):
filelist.append("kespec_TL%s.asc" %i)
for i in filelist:
data=np.loadtxt(i)
x=data[:,0] # Wavenumber
z=np.empty((71,283))
for i in enumerate(filelist):
z[i,:]=np.loadtxt(i)[:,1] # Flux array
f=np.loadtxt("atm_hyb_sz_70.txt")
y=f[:,1] #vertical levels
##
X,Y=np.meshgrid(x,y)
#
plt.contourf(X,Y,z,20,cmap='RdGy')
plt.show()
Желаемый результат:
![Expected](https://i.stack.imgur.com/BUdKt.png)
Что я получаю:
![result](https://i.stack.imgur.com/ORK4pm.png)
Редактировать: Рабочий код
import matplotlib.colors
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
import sys
filelist=[]
for i in range(1,71):
filelist.append("kespec_TL%s.asc" %i)
g=np.loadtxt("kespec_TL1.asc")
x=g[:,0]
f=np.loadtxt("atm_hyb_sz_70.txt")
y=f[:,1]
z=np.zeros((71,283))
for i,gname in enumerate(filelist):
z[i,:]=np.loadtxt(gname)[:,1]
#sys.exit()
plt.semilogx(x)
X,Y=np.meshgrid(x,y)
levels=[0,0.5,2,7,10,20,70]
plt.contourf(X,Y,z,levels,cmap='jet')
plt.colorbar()
plt.savefig('Spectra.png')
plt.show()