Принудительная ось x гистограммы pyplot (python, pandas) - PullRequest
0 голосов
/ 07 мая 2020

Привет, у меня есть данные с именем v c, которые выглядят так.

Это подсчет очков. Диапазон баллов от 0 до 40.

Однако, как показано ниже, только некоторые из них имеют фактический подсчет. Я не могу сделать гистограмму с осью x, которая мне нужна ..

d = {'count': [9, 30, 6, 2,3,1,1,4,1,1,2,2,6,3]}
vc = pd.DataFrame(data=d, index=[12,13,14,15,17,18,19,20,21,22,23,24,25,26])

vc
      index   count
        12       9
        13      30
        14       6
        15       2
        17       3
        18       1
        19       1
        20       4
    ...and so on

Я хочу создать гистограмму с осью x от 0 до 40, например: гистограмма, которую я хочу

Однако моя гистограмма не показывает результаты с нулевым счетом ..

vc=vc.sort_index()
ax = vc.plot(kind='bar', legend=False)
ax.set_xlabel("score")
ax.set_ylabel("count")
ax.set_xticks(range(0,40,5))

Результирующая гистограмма: введите здесь описание изображения

Как создать нужную гистограмму на первом изображении? Я пытался несколько часов, но, к сожалению, потерпел неудачу .. Спасибо

1 Ответ

0 голосов
/ 07 мая 2020

Может быть, не очень умное решение, но вы можете построить пробел с нужным диапазоном, а затем построить его с помощью таблицы подсчета:

import pandas as pd
import matplotlib.pyplot as plt 

d = {'count': [9, 30, 6, 2,3,1,1,4,1,1,2,2,6,3]}
vc = pd.DataFrame(data=d, index=[12,13,14,15,17,18,19,20,21,22,23,24,25,26])
plt.bar(x=np.arange(10,40),height=0)
plt.bar(vc.index.to_list(),vc['count'])

enter image description here

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