2014-10-22 162 views
3

我是全新的Python,我只是从Matlab切换。发行版是Anaconda 2.1.0,我正在使用随附的Spyder IDE。如何使用Spyder为Python中的绘图设置纵横比?

我想在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()回报什么。

回答

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,from 我的经验。如果人们没有意识到你正在使用Pylab或不熟悉它的工作原理,将来你可能会发现很难获得帮助。我建议禁用它,并尝试习惯通过各自的模块访问您需要的功能(例如使用numpy.real而不是仅仅使用real

+0

Perfecto!非常感谢。我不习惯通过模块来调用函数,但如果它比我更好,那么我想我会习惯它。我避开它,但现在我已经有几天了,并且更熟悉语法,这不是问题。非常感谢。 – Andrew 2014-10-22 03:34:10

+0

是的,我理解为什么Pylab存在,以及为什么它对于从MATLAB移动过来的人来说似乎很有吸引力,但是从长远来看,我觉得这是一个净负面因素,因为它让分享代码变得更加困难,并且从每个不熟悉的人那里获得帮助不使用它。 – Marius 2014-10-22 03:36:22