如何使用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自动加载numpy和matplotlib函数:我必须将版本更改为:

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或对Pylab的工作方式不熟悉,您可能会很难获得帮助.我建议禁用它并尝试习惯于通过各自的模块访问所需的功能(例如,使用numpy.real而不是real)

上一篇:SQL SERVER BCP的用法


下一篇:php – WordPress 3.9.x – 从图元素中删除内联宽度