2014-10-22 104 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

相關問題