2013-10-14 3 views
1

Я создал гистограмму ниже:установка кумулятивных линий для гистограммы с Matplotlib

sample histogram

и если был интересен, вместо черчения всего графа (синий цвет), я мог бы просто сюжет верхнего края (в черном цвете)?

или просто соответствовать строке, чтобы соответствовать верхней части распределения?

мой код:

plt.hist(histogramData, bins=200, normed=True, cumulative=True, edgecolor='b', facecolor='None') 

Я попытался удалить 'edgecolor' и 'facecolor', но это не похоже на работу ...

Спасибо за вашу помощь!

+0

Было бы также интересно иметь возможность строить оба вместе. Как [это в d3.js] (http://bl.ocks.org/daluu/5f67cefcf26483c6b555). – David

ответ

2

Я думаю, что коды гистограммы pylabs используют numpys np.histogram() функция, уступающая бункерам и счетам; поэтому, если вы используете это вместе с командой plot(), вы закончили (просто запомните также, что np.cumsum() на подсчетах np.histogram() для кумулятивного вида).

Edit: Что касается комментария, цитирую из numpy.histogram()documentation:

Возвращает:

HIST: массив

Значения гистограммы. См. Нормированные и весовые коэффициенты для описания возможной семантики.

бин края: массив DTYPE поплавка

Возврат бункера кромки (длина (Hist) + 1).

Таким образом, для построения данных в желаемом направлении:

hist, bins = np.histogram(data, bins=200) 
plt.plot(bins[:-1], np.cumsum(hist)) 

или если вы хотите быть более точными, вы можете даже положить значение данных в бункерном центре:

offset = bins[1:]-bins[:-1] 
plt.plot(bins[:-1]+offset, np.cumsum(hist)) 
+0

спасибо. я попробовал это, и похоже, что количество ящиков и счетчиков различно (200 и 201), и я не могу построить данные ... – kate88

+0

@ kate88 Действительно, бункерами являются значения краев бункеров, а не значения центра (см. документацию «np.hist»). Как вы видите, я поэтому не беру все бункеры, но вычисляю центральное положение бина для сюжетного участка. – Faultier

Смежные вопросы