Python ggplot не дает правильных значений оси Y?

У меня есть некоторые проблемы с моей фигурой ggplot, поскольку у меня есть хорошие данные, но график не принимает значения.

Вот данные:

In[127]: ts_top10_stk

Out[127]: 
                 type    value
unit                          
R084  entriesn_hourly  1868674
R084    exitsn_hourly  1467338
R022  entriesn_hourly  1773372
R022    exitsn_hourly  1483494
R012  entriesn_hourly  1618262
R012    exitsn_hourly  1084521
R046  entriesn_hourly  1555117
R046    exitsn_hourly   968557
R055  entriesn_hourly  1554806
R055    exitsn_hourly  1174953
R033  entriesn_hourly  1534652
R033    exitsn_hourly   843390
R018  entriesn_hourly  1444569
R018    exitsn_hourly  1200120
R011  entriesn_hourly  1355492
R011    exitsn_hourly   484352
R029  entriesn_hourly  1347727
R029    exitsn_hourly   771924
R179  entriesn_hourly  1270579
R179    exitsn_hourly   415908

Вот что я делаю с ним для сюжета:

plot_top10 = ggplot(aes(x = 'unit',y='value',fill='type'),data=ts_top10_stk) + geom_bar()

Получение этого исключения:

Exception: Could not evaluate the 'x' mapping: 'unit' (original error: name 'unit' is not defined)

Ясно, что я пытаюсь создать гистограмму с накоплением единиц измерения по оси X, а гистограмму разделить между входами и выходами. Я чувствую, что мне просто не хватает концепции ggplot, потому что я вообще не могу заставить себя работать.

Вот еще информация:

In[202]: ts_top10_stk.columns

Out[202]: Index([u'type', u'value'], dtype='object')
In[203]: ts_top10_stk.index
Out[203]: 
Index([u'R084', u'R084', u'R022', u'R022', u'R012', u'R012', u'R046', u'R046',
       u'R055', u'R055', u'R033', u'R033', u'R018', u'R018', u'R011', u'R011',
       u'R029', u'R029', u'R179', u'R179'],
      dtype='object', name=u'unit')

ОБНОВЛЕНИЕ: Создан новый столбец для значения единицы:

ts_top10_stk['unit2'] = ts_top10_stk.index
plot_top10 = ggplot(aes(x = 'unit2',y='value',fill='type'),data=ts_top10_stk) + geom_bar()

Вот что я получаю, хотя - все еще не учитывая фактические значения... Похоже, это просто подсчет и построение графика (по 1 для каждого, всего 2 типа): введите здесь описание изображения


person theStud54    schedule 25.09.2015    source источник


Ответы (1)


Я не использовал ggplot в Python, но это сообщение заставляет меня думать, что он просто не знает, где найти «единицу», потому что это не столбец — это индекс pandas (это объект pandas, верно?) Попробуйте сделать отдельный столбец «единица измерения» и сделать это снова?

person AustinC    schedule 25.09.2015
comment
Обновил вопрос с вашим предложением, но все равно получил график, который не распознает значения! - person theStud54; 26.09.2015
comment
Попробуйте это -- geom_bar(stat='identity') - person AustinC; 27.09.2015
comment
По умолчанию bar_geom рассчитывает графики, что вы и видели. stat=identity означает, что вместо отображения счетчиков будет отображаться только значение переменной. Пожалуйста, отметьте этот ответ как правильный, если все ваши проблемы решены. - person AustinC; 27.09.2015
comment
Я должен отметить, что ggplot также имеет довольно хорошие подсказки, если вы хотите покопаться в этом подробнее - docs .ggplot2.org/0.9.3.1/geom_bar.html - person AustinC; 27.09.2015