web-dev-qa-db-fra.com

Tracer une courbe lisse dans les graphiques matplotlib

Je lis un fichier netcdf en utilisant python et je dois tracer un graphique en utilisant la bibliothèque matplotlib en python. Le fichier netcdf contient 3 variables: uv et w composants. Je dois dessiner ces 3 composants sur une échelle verticale. Puisque ces données vont être utilisées dans un radar de prévision météorologique. Je dois tracer ces graphiques avec des courbes lisses autour du coin. maintenant le tracé regards likeet le code est ...

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()
13
user2028750

Une solution simple est de faire une interpolation avec des splines, comme expliqué dans un tutoriel Nice Scipy .

Voici un exemple:

enter image description here

17
Eric O Lebigot