Спина к спине гистограммы в matplotlib - PullRequest
4 голосов
/ 27 августа 2009

Есть замечательная функция, которая рисует спина к гистограмме в Matlab. Мне нужно создать аналогичный граф в Matplotlib. Может кто-нибудь показать пример работающего кода?

Ответы [ 2 ]

5 голосов
/ 27 августа 2009

Благодаря ссылке, указанной Марком Рушаковым, вот что я наконец-то сделал

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 голосов
/ 27 августа 2009

В этом почтовом сообщении пользователей matplotlib есть пример кода для бигистограммы , который идет вверх и вниз вместо левого и правого. Вот пример вывода , с которым он связан.

Если движение вверх-вниз абсолютно не сработает, замена операций на оси Y с операциями на оси X займет всего несколько минут.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...