Точки вне диапазона гистограммы исключаются из графика - PullRequest
0 голосов
/ 13 марта 2020

Я строю гистограмму значений и хочу, чтобы все гистограммы имели одинаковый диапазон значений для бинов, чтобы можно было сравнить графики. Для этого я указываю вектор x со значениями и диапазоном каждого бина.

data = np.array([0.1, 0.1, 0.2, 0.2, 0.2, 0.32])
x = np.linspace(0, 0.2, 9)
plt.hist(data, x)

enter image description here

Что я заметил, так это если Я указываю диапазон x в диапазоне от 0 до 0,2, тогда значения больше 0,2 (в примере 0,32) отбрасываются с графика.

Есть ли способ накапливать все значения больше 0,2 в последнем бине и все значения ниже 0,0 в первом бине?

Конечно, я могу сделать что-то вроде

data[data>0.2] = 0.2
data[data<0.0] = 0.0

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

1 Ответ

1 голос
/ 13 марта 2020

Вы можете передать аргумент bins в виде массива с разграничением в любом месте. Это не должно быть линейно разнесено. Это сделает бары различной ширины. Для вашего конкретного случая вы можете использовать метод .clip массива данных.

data = np.array([0.1, 0.1, 0.2, 0.2, 0.2, 0.32])
x = np.linspace(0, 0.2, 9)
plt.hist(data.clip(min=0, max=0.2), x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...