negro matrices libreria graficos graficar ejes color python matplotlib axes

python - matrices - Extraño error con las etiquetas de los ejes matplotlib



matplotlib ejes (5)

Soy muy nuevo en Python y en la programación en general, así que me disculpo por adelantado si me falta algo obvio. Intento trazar un gráfico y etiquetar los ejes, pero cada vez que trato de etiquetar el eje Y, se genera una excepción. Escribí el código a continuación en un nuevo guión para asegurarme de que el problema no provenía de otro lugar en el módulo. Estoy usando Python 3.4.

from numpy import * from matplotlib import * a = [1, 2, 3, 4, 5] b = [2, 3, 2, 3, 2] pyplot.plot(a, b) pylab.xlabel("Time") pylab.ylabel("Speed")

Cada vez, aparece el error ''TypeError:'' str ''object no se puede llamar'' para la línea final. Si cambio la y a una x, todo está bien. Si cambio la x a ay, obtengo el mismo error. Sin embargo, ylabel aparece en la lista desplegable para etiqueta, por lo que la función existe y la documentación dice que una cadena es el único argumento necesario, exactamente como para xlabel (matplotlib.pyplot.ylabel (s, * args, ** kwargs) y matplotlib.pyplot.xlabel (s, * args, ** kwargs)). ¿Qué podría estar pasando aquí?


Guardé el punto de control y detuve el portátil ipython. Luego lo reinicié, lo que resolvió el problema.


Me temo que no puedo decirte lo que está pasando mal porque funciona bien aquí. El siguiente código se ejecuta sin error y muestra la gráfica con la etiqueta correcta.

from matplotlib import pyplot, pylab a = [1, 2, 3, 4, 5] b = [2, 3, 2, 3, 2] pyplot.plot(a, b) pylab.xlabel("Time") pylab.ylabel("Speed") pyplot.show()

Si eso no funciona para ti, quizás puedas probar el uso de figuras y ejes, como este

from matplotlib.pyplot import subplots, show a = [1, 2, 3, 4, 5] b = [2, 3, 2, 3, 2] fig, ax = subplots() ax.plot(a, b) ax.set_xlabel("Time") ax.set_ylabel("Speed") show()

No resuelve el problema subyacente (que es difícil ya que no puedo reproducirlo), pero tal vez logre su propósito al menos.


Tuve el mismo problema cuando trabajaba en el bloc de notas de iPython.

Creo que se puede recrear de la siguiente manera:

from matplotlib.pyplot as plt plt.ylabel = ''somestring'' # oh wait this isn''t the right syntax. ... plt.ylabel(''somestring'') # now this breaks because the function has been turned into a string

Reiniciar el kernel o volver a importar las bibliotecas restaura plt.ylabel a una función.


si estás en ganar, probablemente no instalaste la versión adecuada de matplotlib

debes tener cuidado con la versión de python que tienes y la versión de matplotlib que necesitas tener en tu computadora

descargar: https://pypi.python.org/pypi/matplotlib/ para usuarios de Windows: python -m pip install --user matplotlib-2.1.0-cp36-cp36m-win_amd64.whl

en el nombre del archivo se verá cp36 == python 3.6, cp27 == python 2.7, siempre primero compruebe qué versión de python tiene en la computadora


Acabo de pasarme esto a mí. Parece que lo que hice fue asignar una cadena a xlab y ylab como:

plt.xlab = ''string'' plt.ylab = ''string''

Esto rompió el xlab y el ylab de modo que ya no puedes llamarlos más, ya que ahora son cadenas de hecho, no funciones.

Del mismo modo, estaba usando Jupyter, y tuve que matar a Jupyter y volver a ejecutarlo desde cero para solucionar este problema.

Curiosamente, volver a importar las bibliotecas mientras el kernel seguía funcionando NO funcionaba.