2013-02-05 14 views
11

sto leggendo un file netcdf utilizzando python e ho bisogno di tracciare un grafico usando la libreria matplotlib in python. il file netcdf contiene 3 variabili u v e w componenti. Devo disegnare questi 3 componenti su una scala verticale. poiché questi dati saranno utilizzati in un radar di previsioni meteorologiche. ho bisogno di tracciare questi grafici con curve morbide dietro l'angolo. ora la trama sembra like e il codice è ...tracciare una curva uniforme nei grafici matplotlib

from netCDF4 import Dataset 
from pylab import * 
import numpy 
from scipy import interpolate 
from scipy.interpolate import spline 


#passing the filename 

root_grp=Dataset('C:\\Python27\\MyPrograms\\nnt206rwpuvw.nc') 

#getting values of u component 
temp1 = root_grp.variables['ucomponent'] 
data1 = temp1[:] 
u=data1[0] 

#getting values of v component 
temp2 = root_grp.variables['wcomponent'] 
data2 = temp2[:] 
v=data2[0] 
#getting values of w component 
temp3 = root_grp.variables['wcomponent'] 
data3 = temp3[:] 
w=data3[0] 
#creating a new array 
array=0.15*numpy.arange(1,55).reshape(1,54) 
#aliasing 
y=array[0] 
#sub-plots 
f, (ax1, ax2, ax3) = plt.subplots(1,3, sharey=True) 
ax1.plot(u,y,'r') 
ax2.plot(v,y,'g') 
ax3.plot(w,y,'b') 
#texts 
ax1.set_title('u component',fontsize=16,color='r') 
ax2.set_title('v component',fontsize=16,color='g') 
ax3.set_title('w component',fontsize=16,color='b') 
show() 
+1

Eventuali duplicati di [Plot linea liscia con PyPlot] (http://stackoverflow.com/questions/5283649/plot-smooth-line-with-pyplot) –

risposta

16

Una soluzione semplice è quella di fare l'interpolazione con spline, come spiegato in un nice Scipy tutorial.

Ecco un esempio:

enter image description here