Как показать количество заказов в ценовом диапазоне, используя pandas / matplotlib? - PullRequest
1 голос
/ 16 апреля 2020

У меня есть массив в Python с ценами:

price = ['1.10', '9.31', '49.90', '20.10', '12.60', '33.15', '39.77', '0.00', '18.40', '24.45']

Как мне создать диаграмму или график, которые показывают данные в соответствии с ценовым диапазоном?

Например, у меня есть:
3 элемента в диапазоне от 0,00 до 9,99,
2 элемента в диапазоне от 10,00 до 19,99,
2 элемента в диапазоне от 20,00 до 29,99,
2 элемента в диапазон от 30,00 до 39,99,
1 элемент в диапазоне от 40,00 до 49,99,
0 элемент в диапазоне от 50,00 до 59,99

Обновление:

histogram

Я пробовал гистограмму, и она работает, но метки складываются вместе в моей оси X.
Кстати, мой размер списка довольно большой, длина около 11k.

Обновление снова:

Проблема решается, когда я копирую, вставляю весь код в новый файл .py.

1 Ответ

3 голосов
/ 16 апреля 2020

Вы можете использовать:

price = ['1.10', '9.31', '49.90', '20.10', '12.60', '33.15', '39.77', '0.00', '18.40', '24.45']
price = [float(each) for each in price]

import matplotlib.pyplot as plt
plt.hist(price,bins=5)

Это даст:

enter image description here

Или, если вы хотите явно указать границы бина , может сделать:

plt.hist(price,bins=[0,10,20,30,40,50,60])

, что дает вам:

enter image description here

Подробнее здесь: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.hist.html

Если вы хотите указать, где находится ваш xlabels, вы можете сделать, с большим количеством элементов в списках prices:

price = [np.random.normal() for x in range(10000)];
plt.hist(price,bins=100)
ax=plt.gca()
valuefrom=-4
valueto=5
step=1.5
ax.xaxis.set_ticks(np.arange(valuefrom, valueto, step))

Это даст вам:

enter image description here

valuefrom сообщает ему, откуда начинать ставить xtick labels, valueto сообщает, до какого значения он должен поставить xtick labels, step сообщает какой должен быть разрыв между этими метками.

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