error de matplotlib plot (): TypeError: el objeto 'NoneType' no es iterable
Frecuentes
Visto 2,931 veces
1
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?
1 Respuestas
0
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 python matplotlib or haz tu propia pregunta.
Asumo
top
es unAxis
. ¿Qué se ha hecho paratop
antes de llamar a su miembro de la trama en la línea 801? - Kyss Tao