Обратная ось Z на 3D-графике matplotlib

Как можно изменить порядок на оси z трехмерного графика (т.е. отрицательный вверх, а положительный вниз)? Следующий код создает конус с основанием, направленным вниз; есть ли команда (например, ax.reverse_zlim3d(True) или что-то в этом роде?), которую можно использовать для изменения порядка тиков?

Следующий код строит конус с основанием, направленным вниз. Я хотел бы изменить порядок оси Z так, чтобы он отображался с основанием, направленным вверх, как рожок мороженого, с -1 вверху графика, а не внизу.

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()

Конусный график


person Bryant    schedule 19.08.2013    source источник


Ответы (1)


Используйте метод invert_zaxis для 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()

введите здесь описание изображения

person sodd    schedule 19.08.2013
comment
По какой-то причине это удаляет все галочки и метки галочек с моей оси Z. - person Juno Woods; 06.04.2016
comment
Использование invert.xaxis() и invert.yaxis() также удаляет галочки и метки для осей x и y!! - person user3015703; 19.07.2019