In [1]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

In [2]:
from scipy.interpolate import interp1d

In [3]:
x= np.linspace(0,4*np.pi,10)

In [4]:
f=np.sin(x)

In [5]:
plt.plot(x, f, marker='o')


Out[5]:
[<matplotlib.lines.Line2D at 0x7ffb0fdf24a8>]

In [6]:
sin_approx= interp1d(x, f, kind='cubic')

In [7]:
newx = np.linspace(0,4*np.pi,100)
newf = sin_approx(newx)

In [8]:
plt.plot(x, f, marker='o', linestyle='')
plt.plot(newx, newf, marker='.')


Out[8]:
[<matplotlib.lines.Line2D at 0x7ffb0fdb7630>]

In [9]:
plt.plot(newx,np.abs(np.sin(newx)-sin_approx(newx)))


Out[9]:
[<matplotlib.lines.Line2D at 0x7ffb0fc95048>]

In [10]:
x=4*np.pi*np.random.rand(15)
f=np.sin(x)

In [11]:
newx=np.linspace(np.min(x),np.max(x),100)
newf=sin_approx(newx)

In [12]:
plt.plot(x, f, marker='o', linestyle='', label='original data')
plt.plot(newx, newf, marker='.', label='interpolated');



In [13]:
from scipy.interpolate import interp2d

In [14]:
def wave2d(x,y):
    return np.sin(2*np.pi*x)*np.sin(3*np.pi*y)

In [ ]:
x=np.linspace