如何使用Spyder在Python中设置绘图的纵横比



我是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()不返回任何内容。

我认为主要问题是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

最新更新