#python #matplotlib #bar-chart
Вопрос:
Я пытаюсь построить простую диаграмму на Python, но когда я запускаю код:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x=['A','B','C','D','E','F','G','H','I','J']
y=[47, 23, 27, 0, 82, 7, 46, 92, 36, 76]
plt.bar(x,y)
plt.xlabel('Categories')
plt.ylabel("Values")
plt.title('Categories Bar Plot')
plt.show()
Я получаю сообщение об ошибке:
ValueError: could not convert string to float: 'A'
Я не знаю, почему это не работает, особенно потому, что это точная копия примера с веб-сайта, который должен работать.
Комментарии:
1. Это отлично работает с текущей версией matplotlib. Я голосую за то, чтобы закрыть это как невоспроизводимое.
Ответ №1:
Какие версии pandas/matplotlib вы используете? Вы позаботились о том, чтобы использовать чистую окружающую среду?
Ваш код отлично работает для меня.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x=['A','B','C','D','E','F','G','H','I','J']
y=[47, 23, 27, 0, 82, 7, 46, 92, 36, 76]
plt.bar(x,y)
plt.xlabel('Categories')
plt.ylabel("Values")
plt.title('Categories Bar Plot')
plt.show()
выход:
Комментарии:
1. Хорошо, большое спасибо, я постараюсь выключить и перезапустить все
2. ошибка довольно странная, так как «построение» букв должно работать (пытаться
plt.bar(x,x)
), поэтому мой вопрос о версии matplotlib3. Это было потому, что мне нужно использовать matplotlib 1.5.1, в разделе Я опубликовал свой обходной путь
4. Спасибо за предоставление обратной связи сообществу 😉
Ответ №2:
Оказывается, я использую matplotlib 1.5.1 и не могу обновить его по причинам, которые я не могу написать здесь. Но я написал обходной путь, которым хотел поделиться с сообществом:
x1=['A','B','C','D','E','F','G','H','I','J']
N=0
x2=[]
for i in range(len(x1)):
x2.append(N)
N =1
y=[47, 23, 27, 0, 82, 7, 46, 92, 36, 76]
plt.bar(x2,y)
plt.xlabel('Categories')
plt.ylabel("Values")
plt.title('Categories Bar Plot')
plt.xticks(np.arange(0.5, len(x2) 0.5), list(x1), rotation=90, size = '10')
plt.show()