在matplotlib 3D P上反转Z轴

2024-09-28 01:33:10 发布

您现在位置:Python中文网/ 问答频道 /正文

如何反转三维绘图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()

Cone Plot


Tags: infromimport命令for顺序asnp
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:10

使用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

相关问题 更多 >

    热门问题