在python中反转3D图形中的轴范围

时间:2013-05-23 03:33:35

标签: python matplotlib

我是python的新手,所以帮助我克服这个问题。

我使用一些随机点绘制了一幅3D图。 绘图后我得到了一个图表 但要获得所需的图形,我需要反转Y轴。 我是用

做的
gg.scatter(Ys1,Xs1,Zs1)

gg = plt.gca()

del Ys1[:],Xs1[:],Zs1[:]

gg.set_xlabel(' Y Label')
gg.set_ylabel(' X Label')
gg.set_zlabel(' Z Label')

plt.gca()invert_yaxis()

我的图表已反转,但遗憾的是我没有在我的图中显示轴范围。 如果我不反转,我会把它们展示出来。

如何显示轴范围。

很抱歉由于声誉不高于10,我无法发布图表。

如果这个问题得到解决,我会很高兴的。 谢谢。

1 个答案:

答案 0 :(得分:0)

Ram请考虑上面的评论,因为它们会帮助您获得更好的回复。我试图解释您的代码并提供有效的解决方案。

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

# Create data so anyone can run the script
n = 1000

Xs1 = np.random.randint(0,3,n)
Ys1 = np.linspace(0,10,n)
Zs1 = np.exp(Ys1)


# This needs to be BEFORE gg.scatter otherwise it is nonsense
gg = plt.gca(projection="3d")

# This is how I would invert a list
Ys1_inverted = [Ys1[n-1-i] for i in range(n)]

# One can plot either Ys1 or Ys1 inverted here (see images below)
gg.scatter(Xs1,Ys1,Zs1)

gg.set_xlabel(' Y Label')
gg.set_ylabel(' X Label')
gg.set_zlabel(' Z Label')

plt.show()

Ys1命令中使用两个不同的列表Ys1_invertedplot会显示以下图像:

Using Ys1 data

Ys1_inverted Using Ys1_inverted data

此方法显示所有轴的正确范围。