[英]matplotlib: trouble reducing figure size with TkAgg backend
我在使用TkAgg后端減小matplotlib圖的大小時遇到問題。
首先,讓我證明我可以增加圖形的大小。 運行以下代碼后,
import matplotlib as mpl
mpl.use('TkAgg')
import matplotlib.pyplot as plt
plt.ion()
fig = plt.figure(figsize = [2, 8])
fig.set_size_inches([8,8], forward = True)
fig.canvas.draw()
print fig.get_size_inches()
調用fig.get_size_inches()
得到[ 8, 7.475]
。 我得到7.475
而不是8
有點令人討厭,但是我可以解決這個問題。 接下來,當我運行以下代碼時
import matplotlib as mpl
mpl.use('TkAgg')
import matplotlib.pyplot as plt
plt.ion()
fig = plt.figure(figsize = [8, 8])
fig.set_size_inches([2,8], forward = True)
fig.canvas.draw()
print fig.get_size_inches()
然后調用fig.get_size_inches()
得到[ 6, 7.475]
。 減少到6
與2
相差甚遠。 請注意,必須啟用交互模式。 如果我關閉交互模式( plt.ioff()
),則TkAgg后端會給出[8, 8]
和[2, 8]
,但是圖形窗口的形狀仍然看起來更像[8, 7.475]
和[6, 7.475]
。
如果我切換到Qt4Agg后端,問題就解決了。 不幸的是,我無法讓Qt4Agg后端與Spyder一起使用。 我在首選項->控制台->外部模塊-> GUI后端中將Qt4Agg設置為后端,然后重新啟動Spyder。 調用mpl.get_backend()
返回MacOSX
。
我想要一個與Spyder一起使用的后端,允許我強制將圖形窗口置於所有其他窗口的頂部(請參閱此文章 ),並允許我隨意更改圖形窗口的大小。
如果很重要,我將運行matplotlib 1.3.1和Enthought Canopy Python 2.7.6。
更新:我有Qt4Agg后端與Spyder一起使用。 如果沒有人在今天晚上之前發布解決方案以使TkAgg后端正常工作,那么我將發布如何在Spyder中使用Qt4Agg。
好吧,也許不可能通過TkAgg后端來減小圖形窗口的大小。 也許是一個錯誤。
作為解決方法,Qt4Agg允許您隨意更改圖形大小。 這是在Spyder 2.3.1中使用Qt4Agg后端的方法。
注意:如果在重新啟動Spyder之后再次打開首選項窗格,則必須再次執行步驟2。 由於某些原因,每次打開首選項窗格時,Spyder都會自動默認為“ PySide”而不是“ PyQt4”。 我計划將此報告給Spyder開發團隊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.