Hi, I'm trying to interpolate a 3D data (from the pic attached) with the interp2d command. What I have, are three vectors f, z, A (x, y, z respectively, A is the percentage data given on the isolines). I first put the f and z in a meshgrid and afterwards in the griddata to get a 3D-grid then started the interpolateion. I plotted the the data after gridding, and I observed that almost all nodes are ignored. Do you have any idea how to prepare data to the interp2d command? Don't hesitate to suggest any other solution. my code so far is: import numpy as np from mpl_toolkits.mplot3d import axes3d from scipy.interpolate import interp2d import matplotlib.pyplot as plt from matplotlib import mlab plt.clf() fig = plt.figure(1) ax = axes3d.Axes3D(fig) #read data (ff,ZZ,A,a) = np.loadtxt("accuracy-map.txt", unpack=True) f=np.log10(ff) z=np.log10(ZZ) ##grid everything fgrid, zgrid=np.meshgrid(f,z) #define grid ef=np.linspace(min(f), max(f), len(f)) ez=np.linspace(min(z), max(z), len(f)) Agrid=mlab.griddata(f,z,A, ef,ez) int2d=interp2d(fgrid, zgrid, Agrid, kind='linear') ax.plot(f, z, A, 'ok', markerfacecolor='w') ax.plot_surface(fgrid, zgrid, Agrid) ax.set_xlim3d((min(f), max(f))) ax.set_ylim3d(min(z), max(z)) ax.set_zlim3d(0,100) plt.show()
See this article on multilinear interpolation <http://www.museful.net/2013/uncategorized/multilinear-interpolation> . -- View this message in context: http://scipy-user.10969.n7.nabble.com/Linear-interpolation-in-3D-tp12989p183... Sent from the Scipy-User mailing list archive at Nabble.com.
participants (2)
-
Hardock, Andreas
-
Museful