2016-12-10 3 views
3

У меня проблемы с манипуляцией гистограммой. У меня есть df с двумя столбцами, и я рисую их как сложную гистограмму. Я помещаю их в определенные бункеры (см. Код ниже), но я хочу сделать один большой бит в конце (4000-10000). Тем не менее, по умолчанию ширина столбца большого бункера огромна. Есть ли способ сделать этот большой ящик не более крупным? Для всех столбцов должна быть одинаковая ширина, даже если их х-диапазон неравномерен?Как сделать ширину столбцов гистограммы все равно

Код:

df.plot.hist(stacked=True, bins=[0,400,800,1200,1600,2000,2400,2800,3200,3600,4000,10000],normed= True) 

enter image description here

Спасибо !!!

EDIT:

За советом, пытаясь привести пример набора данных. Сырая, но, возможно, это поможет проиллюстрировать проблему ..

df = pd.DataFrame(np.random.randint(0,4000,size=(100, 2)), columns=['A','B']) 
df['A'].loc[85:89] = np.random.randint(5000,10000, size=5) 
df.plot.hist(stacked=True, bins=[0,400,800,1200,1600,2000,2400,2800,3200,3600,4000,10000],normed= True) 
+0

лучше создать простой рабочий пример, чтобы каждый мог запустить его и увидеть проблему. – furas

+0

спасибо, обновлено сейчас! –

+0

Я думаю, вопрос в том, как масштабировать ось x, чтобы все бункеры имели равную ширину? В противном случае это не будет гистограмма. – godaygo

ответ

1

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

df = pd.DataFrame(np.random.randint(0,4000,size=(100, 2)), columns=['A','B']) 
df['A'].loc[85:89] = np.random.randint(5000,10000, size=5) 
bins = [0,400,800,1200,1600,2000,2400,2800,3200,3600,4000,4400] 
df.clip(upper=4400).plot.hist(stacked=True, bins=bins, normed=True) 

histogram

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

+0

Это отлично работает, спасибо! Вы правы, я должен был упомянуть, что планирую сделать последний ярлык «4000-10000». –

Смежные вопросы