Получение сообщения об ошибке несоответствия формы при попытке построить составную диаграмму - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь создать диаграмму с накоплением из моих данных и получаю сообщение об ошибке

ValueError: несоответствие формы: объекты не могут быть переданы одному форма

Вот что написал соответствующий код:

num = list(yearly_posts.index)
barWidth = 0.50
plt.bar(num,yearly_status.values, color='#b5ffb9',edgecolor='white',width=barWidth)
plt.bar(num,yearly_posts.values, color='#f9bc86',edgecolor='white',width=barWidth)

и это образец моих данных

#yearly_status table
year
2009     85
2010     86
2011    188
2012    274
2013    240
2014    171
2015    132
2016     22
2017     18
2018     13
dtype: int64

#yearly_posts table
year
2009     8
2010    19
2013    19
2014    40
2015    13
2016    20
2017    27
2018    17
dtype: int64

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

, если вы уверены, что длина обоих объектов списка равна, и все еще получаете ошибку shape mismatch. Вы можете преобразовать объект списка в массив numpy перед построением графика.

import numpy as np
numpyObject = np.array(listObject)
0 голосов
/ 14 января 2019

Проблема заключалась в том, что оба ваших фрейма данных имеют неравное нет. записей, поэтому num был разным для обоих. Решение состоит в том, чтобы использовать разные индексы для num1 и num2. Кроме того, вам придется сгладить массив значений 2d в массив 1 d как yearly_status.values.flatten()

num1 = list(yearly_status.index)
num2 = list(yearly_posts.index)
barWidth = 0.50
plt.bar(num1, yearly_status.values.flatten(), color='#b5ffb9',edgecolor='white',width=barWidth)
plt.bar(num2, yearly_posts.values.flatten(), color='#f9bc86',edgecolor='white',width=barWidth)

enter image description here

...