2012-02-16 19 views
6

Quiero crear un diagrama de dispersión con matplotlib donde los puntos de datos tienen datos escalares adjuntos y se les asigna un color dependiendo de qué tan grande es el valor adjunto relativo a los otros puntos del conjunto. Es decir, quiero algo similar a un mapa de calor. Sin embargo, estoy buscando un mapa de calor "discreto", es decir, no se debe trazar nada donde no haya puntos en el conjunto de datos original y, en particular, no se debe realizar ninguna interpolación (en el espacio).Diagrama de dispersión con datos escalares

se puede hacer esto?

Respuesta

10

puede utilizar la dispersión, y establecer el valor que se asigna al parámetro c:

import numpy as np 
import pylab as pl 

x = np.random.uniform(-1, 1, 1000) 
y = np.random.uniform(-1, 1, 1000) 

z = np.sqrt(x*x+y*y) 

pl.scatter(x, y, c=z) 
pl.colorbar() 
pl.show() 

enter image description here

-1

Resolver esto en Altair.

import numpy as np 
import pylab as pl 

x = np.random.uniform(-1, 1, 1000) 
y = np.random.uniform(-1, 1, 1000) 

z = np.sqrt(x*x+y*y) 

df = pd.DataFrame({'x':x,'y':y, 'z':z}) 

from altair import * 

Chart(df).mark_circle().encode(x='x',y='y', color='z') 

enter image description here

Cuestiones relacionadas