Shakthi Kannan
2015-09-26 07:46:53 UTC
Hi,
I am trying to create poly lines using matplotlib and animation. My
code snippet is as follows:
=== BEGIN ===
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def update_line(num, x, y, z, l):
x.append(1.0)
y.append (2.0)
z.append(3.0)
print x, y, z
l, = ax.plot(x, y, z, label='Line')
return l,
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.legend()
x = [1.0, 2.0, 3.0]
y = [4.0, 7.0, 8.0]
z = [6.0, 9.0, 5.0]
l, = ax.plot(x, y, z, label='Line')
line_ani = animation.FuncAnimation(fig, update_line, 25, fargs=(x, y,
z, l), interval=2000, blit=True)
plt.show()
=== END ===
The error that I get:
=== ERROR ===
$ python mat-3.py
/usr/lib/pymodules/python2.7/matplotlib/axes.py:4747: UserWarning: No
labeled objects found. Use label='...' kwarg on individual plots.
warnings.warn("No labeled objects found. "
[1.0, 2.0, 3.0, 1.0] [4.0, 7.0, 8.0, 2.0] [6.0, 9.0, 5.0, 3.0]
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1535, in __call__
return self.func(*args)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 586, in callit
func(*args)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 363, in idle_draw
self.draw()
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 348, in draw
FigureCanvasAgg.draw(self)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py",
line 451, in draw
self.figure.draw(self.renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/figure.py", line 1034, in draw
func(*args)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py",
line 270, in draw
Axes.draw(self, renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 2086, in draw
a.draw(renderer)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/art3d.py",
line 117, in draw
xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 194, in proj_transform
return proj_transform_vec(vec, M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 153, in proj_transform_vec
vecw = np.dot(M, vec)
TypeError: can't multiply sequence by non-int of type 'float'
[1.0, 2.0, 3.0, 1.0, 1.0] [4.0, 7.0, 8.0, 2.0, 2.0] [6.0, 9.0, 5.0, 3.0, 3.0]
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1535, in __call__
return self.func(*args)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 276, in resize
self.show()
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 348, in draw
FigureCanvasAgg.draw(self)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py",
line 451, in draw
self.figure.draw(self.renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/figure.py", line 1034, in draw
func(*args)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py",
line 270, in draw
Axes.draw(self, renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 2086, in draw
a.draw(renderer)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/art3d.py",
line 117, in draw
xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 194, in proj_transform
return proj_transform_vec(vec, M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 153, in proj_transform_vec
vecw = np.dot(M, vec)
TypeError: can't multiply sequence by non-int of type 'float'
=== END ===
I am using the basic_example.py as a template.
http://matplotlib.org/1.4.1/examples/animation/basic_example.html
What could I be missing? Appreciate any help in this regard,
Thanks!
SK
I am trying to create poly lines using matplotlib and animation. My
code snippet is as follows:
=== BEGIN ===
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def update_line(num, x, y, z, l):
x.append(1.0)
y.append (2.0)
z.append(3.0)
print x, y, z
l, = ax.plot(x, y, z, label='Line')
return l,
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.legend()
x = [1.0, 2.0, 3.0]
y = [4.0, 7.0, 8.0]
z = [6.0, 9.0, 5.0]
l, = ax.plot(x, y, z, label='Line')
line_ani = animation.FuncAnimation(fig, update_line, 25, fargs=(x, y,
z, l), interval=2000, blit=True)
plt.show()
=== END ===
The error that I get:
=== ERROR ===
$ python mat-3.py
/usr/lib/pymodules/python2.7/matplotlib/axes.py:4747: UserWarning: No
labeled objects found. Use label='...' kwarg on individual plots.
warnings.warn("No labeled objects found. "
[1.0, 2.0, 3.0, 1.0] [4.0, 7.0, 8.0, 2.0] [6.0, 9.0, 5.0, 3.0]
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1535, in __call__
return self.func(*args)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 586, in callit
func(*args)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 363, in idle_draw
self.draw()
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 348, in draw
FigureCanvasAgg.draw(self)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py",
line 451, in draw
self.figure.draw(self.renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/figure.py", line 1034, in draw
func(*args)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py",
line 270, in draw
Axes.draw(self, renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 2086, in draw
a.draw(renderer)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/art3d.py",
line 117, in draw
xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 194, in proj_transform
return proj_transform_vec(vec, M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 153, in proj_transform_vec
vecw = np.dot(M, vec)
TypeError: can't multiply sequence by non-int of type 'float'
[1.0, 2.0, 3.0, 1.0, 1.0] [4.0, 7.0, 8.0, 2.0, 2.0] [6.0, 9.0, 5.0, 3.0, 3.0]
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1535, in __call__
return self.func(*args)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 276, in resize
self.show()
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py",
line 348, in draw
FigureCanvasAgg.draw(self)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py",
line 451, in draw
self.figure.draw(self.renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/figure.py", line 1034, in draw
func(*args)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py",
line 270, in draw
Axes.draw(self, renderer)
File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55,
in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 2086, in draw
a.draw(renderer)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/art3d.py",
line 117, in draw
xs, ys, zs = proj3d.proj_transform(xs3d, ys3d, zs3d, renderer.M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 194, in proj_transform
return proj_transform_vec(vec, M)
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/proj3d.py",
line 153, in proj_transform_vec
vecw = np.dot(M, vec)
TypeError: can't multiply sequence by non-int of type 'float'
=== END ===
I am using the basic_example.py as a template.
http://matplotlib.org/1.4.1/examples/animation/basic_example.html
What could I be missing? Appreciate any help in this regard,
Thanks!
SK
--
Shakthi Kannan
http://www.shakthimaan.com
------------------------------------------------------------------------------
Shakthi Kannan
http://www.shakthimaan.com
------------------------------------------------------------------------------