2009-08-27 11 views

Antwort

4

Dank der Verbindung von Mark Rushakoff zeigte, ist nach dem, was ich tat schließlich

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() 
2

Diese matplotlib users mailing post hat einige Beispielcode für ein Bihistogramm, die nach oben und unten statt nach links und rechts geht. Here's the example output verknüpfte er mit.

Wenn Up-Down absolut nicht für Sie funktioniert, sollte es nur ein paar Minuten dauern, um die Operationen auf der Y-Achse mit den X-Achsen-Operationen zu vertauschen.

Auch ist Ihr Link keine MATLAB-Funktion, es ist ein echtes Skript, das jemand in etwa 40 Zeilen geschrieben hat. Sie könnten tatsächlich die Skriptquelle betrachten und versuchen, sie zu portieren, da MATLAB und matplotlib eine ziemlich enge Syntax haben.