本文介绍了Matplotlib:等高线图的数据三次插值(或FIT)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一系列来自设备的数据.如何对此图进行三次插值或FIT?
I have a series of data from device.How can i make cubic interpolation or FIT for this plot?
import matplotlib.pyplot as plt
a = [[1,1,1],[2,2,2],[3,3,3]]
b = [[1,2,3],[1,2,3],[1,2,3]]
c = [[3,2,1],[1,4,2],[4,5,1]]
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
fig1.set_size_inches(3.54,3.54)
#Create Contour plot
contour=ax1.contour(a,b,c)
plt.show()
推荐答案
您可以适应@Joe Kington的建议并使用scipy.ndimage.zoom
对于您的三次插值情况非常合适:
You can adapt @Joe Kington's suggestion and use scipy.ndimage.zoom
which for your case of a cubic interpolation fits perfectly:
import matplotlib.pyplot as plt
import numpy as np
from scipy.ndimage import zoom
from mpl_toolkits.mplot3d import axes3d
# Receive standard Matplotlib data for 3d plot
X, Y, Z = axes3d.get_test_data(1) # '1' is a step requested data
#Calculate smooth data
pw = 10 #power of the smooth
Xsm = zoom(X, pw)
Ysm = zoom(Y, pw)
Zsm = zoom(Z, pw)
# Create blank plot
fig = plt.figure()
#Create subplots
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)
# Plotting
ax1.contour(X, Y, Z)
ax2.contour(Xsm, Ysm, Zsm)
plt.show()
哪个给:
这篇关于Matplotlib:等高线图的数据三次插值(或FIT)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!