"""
scipy:interp2d二维插值、画三维图
2020.5.15
"""
from scipy import interpolate
import numpy as np
def z(x,y):
return (x+y)*np.exp(-5*(x**2+y**2))
x,y = np.mgrid[-1:1:20j,-1:1:20j] #生成(-1,1)间15*15的网格坐标点
f = interpolate.interp2d(x,y,z(x,y),kind='cubic') #一阶linear,三阶cubic,五阶quintic
xnew = np.linspace(-1,1,50) #规定使用一维数组,而不能使用二维坐标点
ynew = np.linspace(-1,1,50)
znew = f(xnew,ynew)
#画3d图 (插值前)
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm #产生不同颜色
Axes3D(plt.figure()).plot_surface(x,y,z(x,y),cmap=cm.coolwarm)
plt.show()
#画3d图 (插值后)
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as