2015-05-19 20 views
5

Il tracciamento di una singola funzione variabile in Python è piuttosto semplice con matplotlib. Ma sto cercando di aggiungere un terzo asse al grafico a dispersione, così posso visualizzare il mio modello multivariato.Come tracciare una funzione multivariata in Python?

Ecco un frammento di esempio, con 30 uscite:

import numpy as np 
np.random.seed(2) 
## generate a random data set 
x = np.random.randn(30, 2) 
x[:, 1] = x[:, 1] * 100 
y = 11*x[:,0] + 3.4*x[:,1] - 4 + np.random.randn(30) ##the model 

Se questo era solo un unico modello variabile probabilmente userei qualcosa di simile per generare una trama & di best fit:

%pylab inline 
import matplotlib.pyplot as pl 
pl.scatter(x_train, y_train) 
pl.plot(x_train, ols.predict(x_train)) 
pl.xlabel('x') 
pl.ylabel('y') 

Qual è l'equivalente per la visualizzazione multivariata?

+0

* parte * - serviranno per l'indagine annuale? –

+1

@BhargavRao Ha! Ho bisogno di questi per la vita! Sto cercando di espandere il mio set di strumenti. Ma sì, questa è una possibile applicazione. Ce ne sono molti altri. – samthebrand

+0

usa anche il taccuino '% matplotlib' e ottieni grafici interattivi nel browser (supponendo che questo sia un notebook IPython, usa IPython> 3.0, mpl> 1.4) – tacaswell

risposta

4

L'approccio più comune è quello di variare il colore e/o la dimensione dei simboli di dispersione. Per esempio:

import numpy as np 
import matplotlib.pyplot as plt 
np.random.seed(2) 

## generate a random data set 
x, y = np.random.randn(2, 30) 
y *= 100 
z = 11*x + 3.4*y - 4 + np.random.randn(30) ##the model 

fig, ax = plt.subplots() 
scat = ax.scatter(x, y, c=z, s=200, marker='o') 
fig.colorbar(scat) 

plt.show() 

enter image description here

+0

Grazie Joe. Contrassegnato correttamente per includere il codice completo e funzionante. – samthebrand

4

È possibile utilizzare mplot3d. Per un grafico a dispersione, è possibile utilizzare qualcosa come

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
ax.scatter(xs, ys, zs) 
+1

da mpl_toolkits.mplot3d import Axes3D lo fa funzionare – kztd

Problemi correlati