Гистограмма Matplotlib не показывает детали распределения - PullRequest
0 голосов
/ 17 февраля 2019

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

data['feature'].plot(kind='hist')

И вот что дает мне этот код:

гистограмма :

histogram

Как мне сделать его более гранулированным?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

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

data['feature'].plot(kind='hist', bins=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,
                                        1.0,...
                                        9.1,9.2,9.3,9.4,9.5,9.6,9.7,9.8,9.9,10,
                                        20, 30)  

или

data.plot.hist(by='feature', bins=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,
                                   1.0,...
                                   9.1,9.2,9.3,9.4,9.5,9.6,9.7,9.8,9.9,
                                   10, 20, 30)

. Вы можете создать аргумент bin с помощью numpy.linspace и numpy.объединить:

bins = np.concatenate((np.linspace(0,10,num=101), [20,30]))
0 голосов
/ 17 февраля 2019

data['feature'].plot(kind='hist', bins=100)

Это позволит сгруппировать гистограмму в 100 бинов.Если вам нужна еще более высокая степень детализации, вы можете использовать большее число.


Ваши данные выглядят очень искаженными.Вы можете принудительно создать 100 бинов с равным количеством элементов, используя pd.qcut в качестве параметра bins:

_, bins = pd.qcut(data['feature'], 100, retbins=True) data['feature'].plot(kind='hist', bins=bins)

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