2
respostas

Erro ao tentar plotar o eixo x // x = list(range(1, 13))

Olá!

Quando tento colocar os valores de 1 a 12 no eixo x (meses no ano) para fazer um gráfico hipotético com 1 nota a cada mês, o seguinte erro ocorre:

ValueError: x and y must have same first dimension, but have shapes (12,) and (8,)

Reparei que isso só ocorre se ao fazer x = list(range(1, 13)). Ou seja, se o segundo parâmetro de range tem duas casas. Quando faço a troca para um número de apenas uma casa, o problema não ocorre.

Como posso fazer um gráfico com o eixo x > 9? Segue código:

Definindo notas_de_matematica (funcionando)

from random import seed, randrange

notas_de_matematica = []
seed(50)

for nota in range(8):
  notas_de_matematica.append(randrange(0, 11))

notas_de_matematica

Fazendo o gráfico (Erro reportado acima):

import matplotlib.pyplot as plt

x = list(range(1, 13))
y = notas_de_matematica

plt.plot(x, y, marker='o')
plt.title('Notas de matemática - 2022')
plt.xlabel('Prova mensal')
plt.ylabel('Nota')
plt.show()
2 respostas

Resolvido (Depois de 5 minutos de análise, rsrs)

O problema estava no código que definia a variável notas_de_matematica (justamente o que não estava dando problema ao executar...).

Eu tinha escrito:

from random import seed, randrange

notas_de_matematica = []
seed(50)

for nota in range(8):
  notas_de_matematica.append(randrange(0, 11))

O correto:

from random import seed, randrange

notas_de_matematica = []
seed(50)

for nota in range(12):
  notas_de_matematica.append(randrange(0, 11))

Ou seja, é necessário que a quantidade de argumentos na lista seja igual à quantidade de argumentos no eixos x e y, pois para cada mês é necessário uma nota, e não é possível distribuir uma nota para cada mês sendo que tenho apenas 8 notas e 12 meses.

;)

Olá Enzo, tudo bem com você?

Fico feliz em saber que você conseguiu solucionar o erro apresentado. Este retorno informando como realizou a correção é muito importante, assim sua postagem será de grande auxílio para os estudantes que estão recebendo o mesmo erro.

Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!