在 matplotlib 图中绘制平滑曲线

Posted

技术标签:

【中文标题】在 matplotlib 图中绘制平滑曲线【英文标题】:Plotting a smooth curve in matplotlib graphs 【发布时间】:2013-01-20 05:37:04 【问题描述】:

我正在使用 python 读取 netcdf 文件,需要使用 python 中的 matplotlib 库绘制图形。 netcdf 文件包含 3 个变量:uvw 组件。 我必须在垂直比例上绘制这 3 个组件。 由于这些数据将用于天气预报雷达。 我需要用拐角处的平滑曲线绘制这些图表。 现在情节看起来代码是......

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

【问题讨论】:

Plot smooth line with PyPlot的可能重复 【参考方案1】:

一个简单的解决方案是使用样条线进行插值,如nice Scipy tutorial 中所述。

这是一个例子:

【讨论】:

以上是关于在 matplotlib 图中绘制平滑曲线的主要内容,如果未能解决你的问题,请参考以下文章

python matplotlib怎么在一张图上画多条曲线?Python处理多个csv文件生成叠加曲线图——综合示例:平滑处理图注图例图题范围缩放

如何用matlab画平滑曲线?

使用 matplotlib 绘制水平线

在 PyQt4 的嵌入式 matplotlib 图中使用 ginput

如何在 Python matplotlib 子图中显示图例

Matplotlib风格与样式