Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
302 views
in Technique[技术] by (71.8m points)

python - Plotting a smooth curve in matplotlib graphs

I am reading a netcdf file using python and need to plot a graphs using matplotlib library in python. The netcdf file is containing 3 variables: u v and w components. I have to draw these 3 components on a vertical scale. Since these data is going to be used in a weather forecasting radar's. I need to plot these graphs with smooth curves around the corner. now the plot looks like and the code is...

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()
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

A simple solution is to do interpolation with splines, as explained in a nice Scipy tutorial.

Here is an example:

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...