2012-02-16 20 views
6

Desidero creare un grafico a dispersione con matplotlib in cui ai punti di dati sono associati dati scalari e viene assegnato un colore in base a quanto grande è il loro valore associato rispetto agli altri punti dell'insieme. Io voglio qualcosa di simile a una mappa termica. Tuttavia, sto cercando una heatmap "discreta", vale a dire che nulla dovrebbe essere plottato dove non c'erano punti nel set di dati originale e, in particolare, non dovrebbe essere eseguita alcuna interpolazione (nello spazio).Grafico a dispersione con dati scalari

Questo può essere fatto?

risposta

10

è possibile utilizzare dispersione, e impostare il valore attribuito al parametro 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

Risolvere questo 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

Problemi correlati