error de matplotlib plot (): TypeError: el objeto 'NoneType' no es iterable

Estoy encontrando un problema al intentar trazar gráficos usando plot() con matplottlib.

Aquí hay un fragmento del código que codifica la excepción, junto con el seguimiento de la pila de la excepción y los mensajes de error:

def line_graph(p_collection, filename, *args, **kwargs):
    def plot(top):
        temp = [p.foo_bar for p in p_collection]
        print temp
        top.plot(temp, '-', label="foobar") # <- This is line 801
    multi_graph(p_collection, filename, plot, *args, **kwargs)

Salida:

[276.25, 274.0, 257.0, 261.0, 259.75, 256.5, 261.0, 263.75, 257.5, 260.0, 251.0, 247.5, 246.0, 243.0, 243.75, 247.0, 244.0, 246.75, 251.0, 247.75, 245.75, 241.0, 251.0, 258.0, 258.75, 257.0, 262.0, 263.0, 256.0, 260.0, 261.0, 267.0, 264.25, 261.0, 268.5, 266.0, 268.25, 268.0, 271.0, 263.5, 259.0, 262.5, 265.5, 260.0, 261.5, 258.75, 258.25, 258.5, 255.0, 255.25, 251.75, 250.25, 256.5, 248.75, 249.5, 248.25, 246.0, 248.0, 248.5, 251.0, 254.5, 249.5, 248.5, 251.0, 253.0, 258.0, 259.0, 260.0, 262.0, 269.5, 259.25, 258.0, 250.5, 250.5, 250.5, 258.25, 255.5, 247.25, 248.0, 243.0, 247.5, 248.0, 251.25, 256.0, 250.0, 245.0, 241.5, 240.25, 247.5, 247.5, 246.0, 247.0, 250.0, 243.5, 235.5, 241.5, 249.5, 243.0, 243.5, 245.25]
Traceback (most recent call last):
  File "plotfuncs.py", line 1080, in <module>
    unit_test()
  File "plotfuncs.py", line 1072, in unit_test
    left_view=(0, 40),
  File "plotfuncs.py", line 802, in line_graph
    multi_graph(phist, filename, plot, *args, **kwargs)
  File "plotfuncs.py", line 594, in multi_graph
    plot(top)
  File "plotfuncs.py", line 801, in plot
    top.plot(temp, '-', label="foobar")
  File "/usr/local/lib/python2.6/dist-packages/matplotlib/axes.py", line 3853, in plot
    self.autoscale_view(scalex=scalex, scaley=scaley)
  File "/usr/local/lib/python2.6/dist-packages/matplotlib/axes.py", line 1842, in autoscale_view
    x0, x1 = xlocator.view_limits(x0, x1)
TypeError: 'NoneType' object is not iterable

No entiendo el funcionamiento interno de matplotlib, PERO, como se puede ver en los datos de salida pasados ​​​​a la función plot (), no hay tipos Ninguno, por lo que no entiendo por qué se encuentra un tipo Ninguno durante la llamada. apilar cuando los datos se iteran, ¿alguien puede explicarlo?

preguntado el 09 de marzo de 12 a las 13:03

Asumo top es un Axis. ¿Qué se ha hecho para top antes de llamar a su miembro de la trama en la línea 801? -

1 Respuestas

La salida de xlocator.view_limits(x0, x1) es Ninguno, por lo que no puede iterar para expandir la salida a x0, x1. Aunque no sé por qué es esto. Noté que el error ocurre en una función unit_test, presumiblemente las pruebas unitarias de matlibplot. Si eso genera un error, parece que una de las pruebas unitarias de matlibplot está fallando, por lo que tal vez debería informarlo.

respondido 09 mar '12, 14:03

Lo siento, ¡no sé cómo leí mal eso! Actualizaré la respuesta. - aquavitae

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.