[英]How do I set the aspect ratio for a plot in Python with Spyder?
我是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或者不熟悉它的工作方式,您可能會發現很難獲得幫助。 我建議禁用它並嘗試習慣通過各自的模塊訪問所需的功能(例如使用numpy.real
而不僅僅是real
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.