Вот как это сделать из CSV:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
# Load data from CSV
dat = np.genfromtxt('dat.xyz', delimiter=' ',skip_header=0)
X_dat = dat[:,0]
Y_dat = dat[:,1]
Z_dat = dat[:,2]
# Convert from pandas dataframes to numpy arrays
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])
# create x-y points to be used in heatmap
xi = np.linspace(X.min(),X.max(),1000)
yi = np.linspace(Y.min(),Y.max(),1000)
# Z is a matrix of x-y values
zi = griddata((X, Y), Z, (xi[None,:], yi[:,None]), method='cubic')
# I control the range of my colorbar by removing data
# outside of my range of interest
zmin = 3
zmax = 12
zi[(zi<zmin) | (zi>zmax)] = None
# Create the contour plot
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.rainbow,
vmax=zmax, vmin=zmin)
plt.colorbar()
plt.show()
где dat.xyz
находится в форме
x1 y1 z1
x2 y2 z2
...
Возможный дубликат [черчения матрицу 2D в питона , код и наиболее полезная визуализация] (http://stackoverflow.com/questions/5552641/plotting-a-2d -матрица-в-питон-код-и-большинство-полезную визуализацию). Кроме того, Google помог бы здесь. Вы проверили обширный matplotlib [примеры] (http://matplotlib.org/examples/index.html) и [галерея] (http://matplotlib.org/gallery.html)? –
Вы вообще не просматривали ['matplotlib' gallery] (http://matplotlib.org/gallery.html#images_contours_and_fields) перед публикацией? Есть несколько хороших примеров использования 'imshow',' pcolor' и 'pcolormesh', которые делают то, что вы хотите – tom
Возможный дубликат [многоцветной ошибки тепловой карты Python] (http://stackoverflow.com/questions/30068049/multi-colored -heat-map-error-python) – jkalden