2009-08-27 5 views

ответ

4

Благодаря ссылке указал Марк Rushakoff, следуя то, что я, наконец, сделал

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

В этом matplotlib users mailing post есть пример кода для бихистограммы , который идет вверх и вниз вместо левого и правого. Here's the example output с которым он связан.

Если up-down абсолютно не работает для вас, это займет всего несколько минут, чтобы поменять операции по оси Y с помощью операций оси x.

Кроме того, ваша ссылка не является функцией MATLAB, это реальный скрипт, который кто-то написал примерно в 40 строках. Вы действительно можете посмотреть на источник сценария и попробовать портировать его, поскольку MATLAB и matplotlib имеют довольно близкий синтаксис.