Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

axes3d.plot_wireframe(X,Y,Z) Error

I'm trying to learn Python through a tutorial on youtube and I'm having some difficulies working with 3D graphs. Long stories short, I continuously get (if

Z.ndim != 2:
AttributeError: 'list' object has no attribute 'ndim')

error while trying to launch this simple program:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()

chart = fig.add_subplot(1,1,1,projection = '3d')

X,Y,Z = [1,2,3,4,5,6,7,8],[2,5,3,8,9,5,6,1],[3,6,2,7,5,4,5,6]

chart.plot_wireframe(X,Y,Z)

plt.show()

I know that it is related to the Axes3.plot_wireframe() method but Could anyone explain to me what's happening.

like image 965
A. Lyoussi Avatar asked Dec 13 '25 06:12

A. Lyoussi


1 Answers

I walked around this problem by doing two things.

  1. import numpy as np
  2. making the z-axis a multidimensional array

#My 3d graph

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
import numpy as np

figure = plt.figure()
axis = figure.add_subplot(111, projection = '3d')

x = [1,2,3,4,5,6,7,8,9,10]
y = [5,6,7,8,2,5,6,3,7,2]
z = np.array([[1,2,6,3,2,7,3,3,7,2],[1,2,6,3,2,7,3,3,7,2]])

axis.plot_wireframe(x, y, z)

axis.set_xlabel('x-axis')
axis.set_ylabel('y-axis')
axis.set_zlabel('z-axis')

plt.show()

Take special note of the z variable. If z is not multidimensional, it will throw an error.

Hope it solves your problem

like image 109
Boogie Avatar answered Dec 14 '25 21:12

Boogie



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!