Matplotlib: Data cubic interpolation (or FIT) for Contour plot

谁都会走 提交于 2019-12-06 12:49:11

问题


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

回答1:


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

Which gives:



来源:https://stackoverflow.com/questions/18402355/matplotlib-data-cubic-interpolation-or-fit-for-contour-plot

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!