Domanda

C'è una bella funzione che disegna torna a istogrammi schiena in Matlab . Ho bisogno di creare un grafico simile a matplotlib. Chiunque può mostrare un esempio di codice di lavoro?

È stato utile?

Soluzione

Grazie al link segnalato da Mark Rushakoff, in seguito è quello che ho finalmente fatto

import numpy as np
from matplotlib import pylab as pl

dataOne = get_data_one()
dataTwo = get_data_two()

hN = pl.hist(dataTwo, orientation='horizontal', normed=0, rwidth=0.8, label='ONE')
hS = pl.hist(dataOne, bins=hN[1], orientation='horizontal', normed=0, 
    rwidth=0.8, label='TWO')

for p in hS[2]:
    p.set_width( - p.get_width())

xmin = min([ min(w.get_width() for w in hS[2]), 
                min([w.get_width() for w in hN[2]]) ])
xmin = np.floor(xmin)
xmax = max([ max(w.get_width() for w in hS[2]), 
                max([w.get_width() for w in hN[2]]) ])
xmax = np.ceil(xmax)
range = xmax - xmin
delta = 0.0 * range
pl.xlim([xmin - delta, xmax + delta])
xt = pl.xticks()
n = xt[0]
s = ['%.1f'%abs(i) for i in n]
pl.xticks(n, s)
pl.legend(loc='best')
pl.axvline(0.0)
pl.show()

Altri suggerimenti

matplotlib utenti mailing postale ha qualche codice di esempio per un bihistogram che va su e giù, invece di destra e sinistra. Ecco l'output esempio lui collegato.

Se up-down assolutamente non funziona per voi, si dovrebbe richiedere solo pochi minuti per scambiare le operazioni sul asse y con le operazioni di x-asse.

Inoltre, il tuo link non è una funzione MATLAB, è uno script vero che qualcuno ha scritto in circa 40 righe. Si potrebbe effettivamente guardare il sorgente di script e provare il porting, dal momento che MATLAB e matplotlib hanno abbastanza vicino sintassi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top