Oto jak to zrobić z pliku CSV:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
dat = np.genfromtxt('dat.xyz', delimiter=' ',skip_header=0)
X_dat = dat[:,0]
Y_dat = dat[:,1]
Z_dat = dat[:,2]
X, Y, Z, = np.array([]), np.array([]), np.array([])
for i in range(len(X_dat)):
X = np.append(X, X_dat[i])
Y = np.append(Y, Y_dat[i])
Z = np.append(Z, Z_dat[i])
xi = np.linspace(X.min(), X.max(), 1000)
yi = np.linspace(Y.min(), Y.max(), 1000)
zi = griddata((X, Y), Z, (xi[None,:], yi[:,None]), method='cubic')
zmin = 3
zmax = 12
zi[(zi<zmin) | (zi>zmax)] = None
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.rainbow,
vmax=zmax, vmin=zmin)
plt.colorbar()
plt.show()
gdzie dat.xyz
jest w formularzu
x1 y1 z1
x2 y2 z2
...
matplotlib
galerię przed wysłaniem? Istnieje kilka przykładów dobrych użyciemimshow
,pcolor
ipcolormesh
że to, co chcesz