2013-08-19 2 views
4

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

Следующий код изображает конус с основанием, направленным вниз. Я хотел бы отменить порядок оси 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() 

Cone Plot

ответ

9

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

enter image description here

+0

По какой-то причине это снимает все клещи и отметьте метки из моей оси. –

Смежные вопросы