Призывать отдельные бины в гистограммах в Matplotlib? - PullRequest
0 голосов
/ 12 марта 2020

Мне нужно использовать каждый отдельный бин из трех гистограмм для использования в уравнении (то есть, бин1 из гистограммы1, гистограмма2 и гистограмма3, а затем бин2 из h1, h2, h3 и т. Д. c).

Есть ли способ вызвать отдельные ячейки из гистограммы для использования?

Заранее спасибо

1 Ответ

0 голосов
/ 12 марта 2020

Да, когда вы звоните plt.hist, возвращается местоположение ячеек, а также количество записей в каждой ячейке. Допустим, вы сгенерировали три гистограммы (я собираюсь go для гистограмм 0, 1 и 2, потому что python):

import matplotlib.pyplot as plt
import numpy as np

x0 = np.random.rand(25)
x1 = np.random.rand(25)
x2 = np.random.rand(25)

counts0, bins0, patches0 = plt.hist(x0)
counts1, bins1, patches1 = plt.hist(x1)
counts2, bins2, patches2 = plt.hist(x2)

Расположение бинов для гистограммы 0 затем сохраняется в bins0.

Количество записей в ячейках гистограммы 0 затем сохраняется в counts0.

Тогда у меня возникнет соблазн собрать их в 2d массивы:

counts = np.vstack([counts0, counts1, counts2]).T
bins = np.vstack([bins0, bins1, bins2]).T

Теперь bins[i, j] указывает местоположение бина i для гистограммы j. Точно так же counts[i, j] содержит количество записей в бине i гистограммы j.

С этой настройкой вы можете получить счетчики в бине i для гистограмм 0, 1 и 2 как counts[i].

Кроме того, если вам на самом деле не нужны графики и вы только вызываете plt.hist, чтобы получить указатель на counts и bins, тогда вы можете использовать np.histogram вместо. Синтаксис аналогичен: counts, bins = np.histogram(x) (np.histogram не возвращает исправления).

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