matplotlib 3D图上的反向Z轴

发布于 2021-01-29 14:58:11

如何逆转3D图的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()

圆锥图

关注者
0
被浏览
106
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    在此处输入图片说明



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看