Python Matplotlib 3D散点-等宽高比

Python Matplotlib 3D散点-等宽高比,python,matplotlib,scatter,mplot3d,Python,Matplotlib,Scatter,Mplot3d,我正在尝试使用matplotlib制作一个三维散点图。我遇到的问题是,绘图没有在所有轴对之间使用1:1的纵横比。有人知道怎么解决这个问题吗 我的代码如下所示: from matplotlib.pyplot import * from mpl_toolkits.mplot3d import * figure(1, figsize=(7,7)) ax = gca(projection='3d') ax.scatter(FH[:,0],FH[:,1],FH[:,2],s=0.5) show() 我

我正在尝试使用matplotlib制作一个三维散点图。我遇到的问题是,绘图没有在所有轴对之间使用1:1的纵横比。有人知道怎么解决这个问题吗

我的代码如下所示:

from matplotlib.pyplot import *
from mpl_toolkits.mplot3d import *

figure(1, figsize=(7,7))
ax = gca(projection='3d')
ax.scatter(FH[:,0],FH[:,1],FH[:,2],s=0.5)
show()
我曾尝试将类似“aspect=1”的Kwarg添加到脚本的各个部分(即-scatter()、figure()、ax()),但到目前为止还没有任何效果

任何帮助都将不胜感激


谢谢

好的-我已经解决了我的问题。我在这里找到的:(在一篇我忽略的帖子里)

我的问题实际上是如何设置绘图的边界框(或范围),而不是如何设置纵横比。问题在于,如果您知道要用于绘制数据的边界框的范围,请按如下方式绘制不可见点:

fig=figure(1, figsize=(7,7))
ax = fig.gca(projection='3d')
ax.scatter(FH[:,0],FH[:,1],FH[:,2],s=0.5)

# plotting white points
MAX = 3 # I wanted -3 to 3 in each direction
for direction in (-1, 1):
    for point in diag(direction * MAX * array([1,1,1])):
        ax.plot([point[0]], [point[1]], [point[2]], 'w')

show()

希望这有帮助。我觉得有点奇怪,我无法为我的3D散点图找到一个函数/kwarg样的范围,但我想这并不意味着机制不知何故不存在。

也许这有助于我还没有尝试整个子图例程。这是个好主意,虽然我不知道它是否适用于3D散点图。好的,我在你链接的页面上尝试了一些方法,它们都是关于更改窗口本身的纵横比,而不是实际的打印轴。是否有方法调整三维散点图的轴范围?我正在为所有三个轴绘制x到x的图。我也遇到了这样的情况:但同样,这只会改变窗口的纵横比。。。