2012-06-25 46 views
11

Sto usando Python matplotlib. Voglio sovrapporre i grafici a dispersione. So come sovrapporre trame fila continua con i comandi:Python Matplotlib sovrappone i grafici a dispersione

>>> plt.plot(seriesX) 
>>> plt.plot(Xresampl) 
>>> plt.show() 

Ma non sembra funzionare allo stesso modo con la dispersione. O forse usando plot() con un ulteriore argomento che specifica lo stile della linea. Come procedere? grazie

risposta

19

È sufficiente chiamare la funzione scatter due volte, matplotlib per sovrapporre i due grafici. Si potrebbe voler specificare un colore, poiché il valore predefinito per tutti i grafici a dispersione è blu. Questo è forse il motivo per cui hai visto solo una trama.

import numpy as np 
import pylab as plt 

X = np.linspace(0,5,100) 
Y1 = X + 2*np.random.random(X.shape) 
Y2 = X**2 + np.random.random(X.shape) 

plt.scatter(X,Y1,color='k') 
plt.scatter(X,Y2,color='g') 
plt.show() 

enter image description here

+1

Inoltre, utilizzando per esempio "alpha = 0.8" ti darebbe trasparenza – ntg

3

Se si desidera continuare a utilizzare plot è possibile utilizzare l'oggetto asse restituito da sottotrame:

import numpy as np 
import pylab as plt 

X = np.linspace(0,5,100) 
Y1 = X + 2*np.random.random(X.shape) 
Y2 = X**2 + np.random.random(X.shape) 

fig, ax = plt.subplots() 
ax.plot(X,Y1,'o') 
ax.plot(X,Y2,'x') 
plt.show() 
Problemi correlati