Invertir el eje Z en el gráfico 3D de matplotlib

¿Cómo se podría invertir el orden en el eje z de un gráfico 3D (es decir, negativo está arriba y lo positivo está abajo)? El siguiente código produce un cono con la base apuntando hacia abajo; ¿Existe un comando (como ax.reverse_zlim3d(True) o algo así) que pueda usarse para cambiar el orden de tic?

El siguiente código traza un cono con la base apuntando hacia abajo. Me gustaría invertir el orden del eje z para que se dibuje con la base apuntando hacia arriba, como un cono de helado, con -1 en la parte superior del gráfico en lugar de la parte inferior.

 from matplotlib import pyplot as p from mpl_toolkits.mplot3d import Axes3D # @UnusedImport import numpy as np from math import pi, cos, sin z = np.arange(0, 1, 0.02) theta = np.arange(0, 2 * pi + pi / 50, pi / 50) fig = p.figure() axes1 = fig.add_subplot(111, projection='3d') for zval in z: x = zval * np.array([cos(q) for q in theta]) y = zval * np.array([sin(q) for q in theta]) axes1.plot(x, y, -zval, 'b-') axes1.set_xlabel("x label") axes1.set_ylabel("y label") axes1.set_zlabel("z label") p.show() 

Cono Parcela

Utilice el método invert_zaxis de Axes3D :

 from matplotlib import pyplot as p from mpl_toolkits.mplot3d import Axes3D # @UnusedImport import numpy as np from math import pi, cos, sin z = np.arange(0, 1, 0.02) theta = np.arange(0, 2 * pi + pi / 50, pi / 50) fig = p.figure() axes1 = fig.add_subplot(111, projection='3d') for zval in z: x = zval * np.array([cos(q) for q in theta]) y = zval * np.array([sin(q) for q in theta]) axes1.plot(x, y, -zval, 'b-') axes1.set_xlabel("x label") axes1.set_ylabel("y label") axes1.set_zlabel("z label") axes1.invert_zaxis() p.show() 

introduzca la descripción de la imagen aquí