построение ограниченного CDF данных дискретного счета в python matplotlib - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть массив данных «data», который просто содержит набор целых чисел.Учитывая другой массив "bin", я просто хочу сделать частотный график / CDF доли от общего количества записей в "data", которые имеют по крайней мере количество bins [0] -много, по крайней мере, количество bins [1] -много и т.д.и превратить его в гистограмму, в матплотлиб.Например, если:

data = [1, 4, 5, 10]
bins = [0, 5, 6, 7]

, то результатом должна быть гистограмма с 0, 5, 6, 7 на оси x, а затем доля данных, которая имеет значения> = 0, тогдазначения> = 5 и т. д. Как я могу сделать этот вид "дискретного" гистограммы CDF с указанными ячейками в matplotlib?Спасибо.

1 Ответ

1 голос
/ 13 декабря 2011

Если вы используете matplotlib, я предполагаю, что вы также используете numpy, так что вы можете просто пройти через bins и вычислить дробь data, такую, что data>bin, для всех data в datas и для всех bin в bins.

Для этого это может сработать:

import numpy as np
# turn data into numpy array for easier manipulation
data2 = np.array(data)
n     = len(data2)

# calculate fractions for each bin in bins
# astype('float') because otherwise you end up doing integer arithmetic
fracs = [ sum(data2>=bin).astype('float')/n for bin in bins ]

Теперь просто строим график bins против fracs, например,

import matplotlib.pyplot as plt
plt.bar(bins,fracs)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...