Description
Bug summary
I had a code that uses animation.FuncAnimation
to generate an animation, where I update a mpl_toolkits.mplot3d.art3d.Line3D
object using set_data(a, b)
and set_3d_properties(c)
where a
, b
, and c
are of type numpy.float64
. This code works perfectly in Matplotlib 3.4.3. However, after I upgraded to Matplotlib 3.5.1, it fails with the following error
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/mpl_toolkits/mplot3d/art3d.py", line 175, in set_3d_properties
zs = np.broadcast_to(zs, len(xs))
TypeError: object of type 'numpy.float64' has no len()
Source
I checked the source code of mpl_toolkits/mplot3d/art3d.py
and found that in Matplotlib 3.4.3, line 175 (the line where the error occurred) was zs = np.broadcast_to(zs, xs.shape)
instead, and this avoids the error. I was able to make my code run again in Matplotlib 3.5.1 by changing my code to set_data([a], [b])
and set_3d_properties([c])
, but as expected, this would not run in 3.4.3. I am using Python 3.10.
Was this change in line 175 of mpl_toolkits/mplot3d/art3d.py
intended?