Гистограмма Matplotlib / Pandas некорректное выравнивание
# Гистограмма n = np.random.randn(100000) fig, axes = plt.subplots(1, 2, figsize=(12,4)) Оси [0].hist (п) axes[0].set_title("Гистограмма по умолчанию") оси [0].set_xlim((min(n), max(n))) оси [1].hist (n, кумулятивно =True, бины =50) axes[1].set_title("Накопительная подробная гистограмма") оси [1].set_xlim((min(n), max(n)));
Это из записной книжки ipython здесь In[41]
Кажется, что гистограммы не корректно совмещаются с сетками (см. Первый субплот). Это та же проблема, с которой я сталкиваюсь на своих собственных участках.
Может кто-нибудь объяснить почему?
2 ответа
Ищите align
вариант в матплотлиб хист. Вы можете выровнять влево, вправо или по центру. По умолчанию ваши корзины не будут центрированы, поэтому вы видите выровненные по левому краю контейнеры. Это прописано в исторических документах matplotlib: http://matplotlib.org/api/pyplot_api.html
Что если у вас есть гауссиан, который распространяется от -2647 до +1324, ожидаете ли вы, что у вас 3971 лот? может быть, слишком много. 39? тогда вы на 0,71. а как насчет 40? Выкл. На 0,29.
Как работает гистограмма, вы можете установить bins=
параметр (количество бинов, по умолчанию 10). На правом графике шкала, кажется, изменяется от -4,5 до +4,5, что составляет 9 делений на 10 бинов, что дает 0,9/ бин.
Кроме того, когда вы делаете гистограмму, неясно, "как" вы хотите складывать вещи и представлять их. если у вас есть корзина от 0 до 1, это 0 < x <= 1
, 0 <= x < 1
? если у вас есть только целочисленные значения, я подозреваю, что вы также предпочли бы, чтобы корзины были сосредоточены вокруг целочисленных значений? право?
Так histogram
это быстрый метод, который дает вам представление о данных, но не мешает вам устанавливать его параметры для представления данных так, как вам нравится.
В этом сообщении блога есть хорошая демонстрация влияния параметра при построении гистограммы и объясняются некоторые альтернативные методы построения.