Гистограмма 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

Это из записной книжки 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 это быстрый метод, который дает вам представление о данных, но не мешает вам устанавливать его параметры для представления данных так, как вам нравится.

В этом сообщении блога есть хорошая демонстрация влияния параметра при построении гистограммы и объясняются некоторые альтернативные методы построения.

Другие вопросы по тегам