#python #arrays #list #csv #matplotlib
Вопрос:
я пытаюсь создать штриховую графику с помощью matplotlib, но я не могу использовать numpy или panda. так что мне бы хотелось немного помочь с разделением прутьев
вот мой код:
import matplotlib.pyplot as plt
eixo_X_ano = [78,82,86,90,94]
eixo_Y_AMM = [1.8,1.75,1.9,1.77,1.74]
eixo_Y_AMF = [1.71,1.69,1.8,1.73,1.82]
plt.title("Altura Media dos atletas que ganharam medalhas")
plt.xlabel("Anos")
plt.ylabel("Altura media")
largura = 2
plt.ylim(1,2.50)
plt.bar(eixo_X_ano - largura/2, eixo_Y_AMM, largura, label = "Masculino", color = "teal")
plt.bar(eixo_X_ano largura/2, eixo_Y_AMF, largura, label = "Feminino", color = "r")
plt.legend()
plt.xticks(eixo_X_ano)
plt.show()
Комментарии:
1.
numpy
является зависимостью отmatplotlib
. Без использованияnumpy
операции между alist
и afloat
не векторизуются.
Ответ №1:
Если вы не используете numpy, вы не можете выполнять арифметику массивов (то есть eixo_X_ano - largura/2
). Ты должен сделать это сам:
import matplotlib.pyplot as plt
eixo_X_ano = [78,82,86,90,94]
eixo_Y_AMM = [1.8,1.75,1.9,1.77,1.74]
eixo_Y_AMF = [1.71,1.69,1.8,1.73,1.82]
plt.title("Altura Media dos atletas que ganharam medalhas")
plt.xlabel("Anos")
plt.ylabel("Altura media")
largura = 2
x1 = [i - largura/2 for i in eixo_X_ano]
x2 = [i largura/2 for i in eixo_X_ano]
plt.ylim(1,2.50)
plt.bar(x1, eixo_Y_AMM, largura, label = "Masculino", color = "teal")
plt.bar(x2, eixo_Y_AMF, largura, label = "Feminino", color = "r")
plt.legend()
plt.xticks(eixo_X_ano)
plt.show()
Как сказал Майкл, ваше ограничение против numpy
глупо. Matplotlib импортирует numpy, поэтому нет необходимости импортировать его самостоятельно.
Комментарии:
1. это ограничение, которое сделал профессор