Solución:
Si tiene los datos brutos de los recuentos, puede utilizar plt.hexbin
para crear las parcelas para usted (en mi humilde opinión, esto es mejor que una celosía cuadrada): Adaptado del ejemplo de hexbin
:
import numpy as np
import matplotlib.pyplot as plt
n = 100000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
plt.hexbin(x,y)
plt.show()
Si ya tiene los valores Z en una matriz como menciona, simplemente use plt.imshow
o plt.matshow
:
XB = np.linspace(-1,1,20)
YB = np.linspace(-1,1,20)
X,Y = np.meshgrid(XB,YB)
Z = np.exp(-(X**2+Y**2))
plt.imshow(Z,interpolation='none')
Si no solo tiene la matriz de histograma 2D sino también la (x, y)
datos, entonces podría hacer un diagrama de dispersión de la (x, y)
puntos y colorea cada punto de acuerdo con su valor de recuento agrupado en la matriz de histograma 2D:
import numpy as np
import matplotlib.pyplot as plt
n = 10000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
xedges, yedges = np.linspace(-4, 4, 42), np.linspace(-25, 25, 42)
hist, xedges, yedges = np.histogram2d(x, y, (xedges, yedges))
xidx = np.clip(np.digitize(x, xedges), 0, hist.shape[0]-1)
yidx = np.clip(np.digitize(y, yedges), 0, hist.shape[1]-1)
c = hist[xidx, yidx]
plt.scatter(x, y, c=c)
plt.show()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)