довольно нубистский здесь, у меня есть данные в пандас-фрейме данных, в котором есть данные, которые имеют оценку людей (из 5) по различным вещам.Я пытаюсь использовать matplotlib для построения столбцов по горизонтали, по 3 столбца рядом друг с другом для каждого человека по одному вопросу (по y) со счетом по x.Согласно официальным документам и другим источникам, мне просто нужно добавить несколько цифр к y, чтобы немного переместить столбцы, но это дает мне странную ошибку, говоря, что это должна быть строка.Может кто-нибудь сказать мне, что я делаю не так?
Данные выглядят так:
name thing_1 thing_2 thing_3
John 4 3 1
Jane 5 2 4
Bob 3 3 4
и код
fig,ax = plt.subplots(figsize=(11,10))
y1 = data.iloc[:,1:].columns
x1 = data.iloc[0:1,1:].sum(axis=0)
y2 = data.iloc[:,1:].columns
x2 = data.iloc[1:2,1:].sum(axis=0)
y3 = data.iloc[:,1:].columns
x3 = data.iloc[2:,1:].sum(axis=0)
width = 0.3
ax.barh(y,x,width,align='center')
ax.barh(y+0.3,x,width,align='center')
ax.barh(y+0.6,x,width,align='center')
plt.xlabel('Score')
plt.ylabel('Bodypart')
plt.title('Body part total score')
plt.legend(data['name'].values)
plt.show()
и ошибка
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-217-a7f65a43c075> in <module>()
45
46 ax.barh(y,x,width,align='center')
---> 47 ax.barh(y+0.3,x,width,align='center')
48 ax.barh(y+0.6,x,width,align='center')
49
~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py in __add__(self, other)
2684
2685 def __add__(self, other):
-> 2686 return Index(np.array(self) + other)
2687
2688 def __radd__(self, other):
TypeError: must be str, not float