如何使用Spyder在Python中设置绘图的宽高比?

时间:2014-10-22 02:43:50

标签: python matplotlib plot figure

我是Python的新手,我刚刚从Matlab切换。该发行版是Anaconda 2.1.0,我正在使用它附带的Spyder IDE。

我正在尝试在x和y轴上制作具有相等比率的散点图,以便此代码打印出一个正方形图形,其中内部绘制了正六边形的顶点。

import numpy
import cmath
import matplotlib

coeff = [1,0,0,0,0,0,-1]
x = numpy.roots(coeff)

zeroplot = plot(real(x),imag(x), 'ro')
plt.gca(aspect='equal')
plt.show()

但是plt.gca(aspect='equal')会返回一个空白数字,其轴为[0,1,0,1],而plt.show()则不返回任何内容。

1 个答案:

答案 0 :(得分:3)

我认为主要问题是plt.gca(aspect='equal')并不只是抓住当前轴并设置其纵横比。从文档(help(plt.gca))开始,如果当前的轴没有正确的宽高比,它似乎会创建一个新轴,因此立即修复此问题应该是将plt.gca(aspect='equal')替换为:

ax = plt.gca()
ax.set_aspect('equal')

我还应该提一下,由于您使用pylab自动加载numpymatplotlib函数,我在运行代码时遇到了一些麻烦:我不得不将我的版本更改为:

import numpy
import cmath
from matplotlib import pyplot as plt

coeff = [1,0,0,0,0,0,-1]
x = numpy.roots(coeff)

zeroplot = plt.plot(numpy.real(x), numpy.imag(x), 'ro')
ax = plt.gca()
ax.set_aspect('equal')
plt.show()

根据我的经验,已经熟悉Python的人通常不会使用Pylab。将来,如果人们没有意识到您正在使用Pylab或者不熟悉它的工作方式,您可能会发现很难获得帮助。我建议禁用它,并尝试习惯通过各自的模块访问所需的功能(例如,使用numpy.real而不仅仅是real