Я пытаюсь сделать гистограмму, мой код
data = np.genfromtxt("ca1_data/distance.csv",
delimiter=',',skip_header=1,
dtype=[('Year','i4'),('Mode','U50'),('Distance','U10')],
missing_values=['na','-'],filling_values=[0])
years = np.arange(5)
scores = [(data[(data['Mode']=='MRT') & (data['Year']>=2010)]['Distance']),
(data[(data['Mode']=='Bus') & (data['Year']>=2010)]['Distance'])]
labels = np.arange(2010,2015)
print(scores)
fig = plt.figure(figsize=(20,10))
ax1 = fig.add_subplot(111)
ax1.set_xticklabels(labels, fontsize=10)
plt.title(title)
plt.xlabel('Years')
plt.ylabel('Distance')
bp_dict = plt.bar(scores,10,labels=labels)
plt.show()
проблема в том, что я получил ошибку
bar() missing 1 required positional argument: 'height'
Поэтому я добавил его вручную
bp_dict = plt.bar(scores,10,labels=labels)
Однако я получил другую ошибку
TypeError: unhashable type: 'numpy.ndarray'
Заранее спасибо!
Обновлять: Вот что такое вывод баллов
[array(['10.3', '10', '9.6', '9.5', '9.2'], dtype='<U10'), array(['4.8', '4.5', '4.4', '4.3', '4.3'], dtype='<U10')]
Обновление2: я обновил код
scores = list(map(float, np.array(scores).flatten()))
Я получил новую ошибку после установки этого
AttributeError: Unknown property labels






Для гистограммы вам необходимо указать x-расположение всех столбцов. Самый простой способ, если у вас нет явных значений x, — использовать диапазон 0, 1, 2, 3, ... и т. д. Итак, если у вас есть N баров для построения, вы можете сгенерировать N значений x, используя range() или использовать labels в качестве аргумента x.
Поэтому используйте
labels = np.arange(2010,2015)
scores = [np.array(['10.3', '10', '9.6', '9.5', '9.2'], dtype='<U10'),
np.array(['4.8', '4.5', '4.4', '4.3', '4.3'], dtype='<U10')]
bp_dict = plt.bar(labels, list(map(float, scores[0])), align='edge', width=-0.4)
bp_dict = plt.bar(labels, list(map(float, scores[1])), align='edge', width=0.4)
Скажи мне, что ты получишь, когда print (scores)
@Wolfeatspotatoes: добавьте scores = list(map(float, np.array(scores).flatten())) перед построением графика
Привет спасибо за ответ! У меня есть еще одна ошибка нехешируемого типа: 'numpy.ndarray', вы знаете, что вызвало это?