我无法使用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]
和{{1} }。
如果我切换到Qt4Agg后端,问题就会消失。不幸的是,我无法让Qt4Agg后端与Spyder合作。我将Qt4Agg设置为首选项中的后端 - >控制台 - >外部模块 - > GUI后端,重启Spyder。致电[6, 7.475]
会返回mpl.get_backend()
。
我想要一个与Spyder一起使用的后端,允许我强制图形窗口位于所有其他窗口之上(参见this post),并允许我随意更改图形窗口大小。 / p>
如果重要,我正在运行matplotlib 1.3.1和Enthought Canopy Python 2.7.6。
更新:我得到了Qt4Agg后端与Spyder合作。如果没有人发布解决方案以使TkAgg后端在今晚正常工作,那么我将发布如何使用Spyder的Qt4Agg。
答案 0 :(得分:0)
好吧,也许用TkAgg后端减少数字窗口大小是不可能的。也许这是一个错误。
作为一种解决方法,Qt4Agg允许您随意更改数字大小。以下是如何将Qt4Agg后端与Spyder 2.3.1一起使用。
注意:如果在重新启动Spyder后再次打开首选项面板,则必须再次执行步骤#2。出于某种原因,Spyder自动默认为" PySide"而不是" PyQt4"任何时候打开首选项窗格。我计划向Spyder开发团队报告。