[英]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.