Python / matplotlib Показать уровни достоверности в гистограмме - PullRequest
3 голосов
/ 01 июня 2011

вот моя проблема.У меня есть некоторые данные, которые я скопировал, чтобы получить «оцифрованный» PDF, и это нормально.Теперь я хотел найти способ указать разные доверительные интервалы, по-разному окрашивая группы бинов.В частности, начиная с корзины с наибольшим количеством я хотел найти и раскрасить, скажем, красным, все самые высокие корзины, чья площадь меньше, чем, скажем .6.Затем, всегда выбирая новые ячейки, уменьшая количество, я хочу покрасить ячейки, которые увеличивают мою красную область до 0,8 оранжевым цветом.Я подумывал об использовании NumPy для получения бинов и подсчетов, разбить их на 3 серии (красный, оранжевый и оригинальный цвет) и нанести их на график Пиплота.Надеюсь, вы сможете указать более быстрый путь, спасибо!

1 Ответ

6 голосов
/ 02 июня 2011

Если я правильно понимаю ваш вопрос, я думаю, что код ниже сделает то, что вы предлагаете. Кажется, он немного отличается от подхода, который вы рассматривали, и я не уверен, что он более эффективен. Несмотря на это, обычно помогает увидеть, как кто-то еще что-то сделает. Предполагается, что уже сгенерированный pdf (гистограмма) содержит ячейки, представленные переменными «ячейками», и ширину ячейки, представленную переменной «binwidth».

gray = (.5,.5,.5)
orange = (1.0, 0.647, 0.0)
red = (1.0, 0.0, 0.0)

clrs = [gray for xx in bins]

idxs = pdf.argsort()
idxs = idxs[::-1]
oranges = idxs[(cumsum(pdf[idxs])*binwidth < 0.8).nonzero()]
reds = idxs[(cumsum(pdf[idxs])*binwidth < 0.6).nonzero()]

for idx in oranges:
    clrs[idx] = orange

for idx in reds:
    clrs[idx] = red

bar(left=bins,height=pdf,width=binwidth,color=clrs)

Here is a view of the result that I get along with the associated PDF and CDF

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