概述
我以前用过以下方法来确保我的图形大小在绘图中是一致的:import matplotlib as mpl
rc_fonts = {'figure.figsize': (15, 9.3)}
mpl.rcParams.update(rc_fonts)
import matplotlib.pylab as plt
但是,我现在发现对于我通常的默认值(15, 9.3)这一点被忽略了。如下所示:
^{pr2}$
初始绘图大小为[10.35, 9.3],之后根据需要是[15, 9.3]。但是,如果我将默认值设为非常大或更小,例如(32,19.3),则图形窗口的大小是正确的。我希望保持我所希望的改变rcParams以设置默认值的方法,而不是尝试通过制作临时虚拟图来设置它两次。这是一个错误,还是我走错了方向?在
详细信息:Python2.7.12(必须在虚拟环境中使用)。在
后端TkAgg(我希望保持原样)。在
Matplotlib 2.1.0版。(这个bug/特性在版本2.1.2中也会继续存在)。在
PS-我更喜欢避免使用matplotlib fig和ax对象,而是直接使用plt接口。如果可能的话,我想用这种方式来解决问题。在
可能的已知问题:
我在github上发现了以下问题2716,我认为这是导致这个问题的原因,但是没有出现任何适合rcParam settings路由的修复程序。因此,任何帮助或建议仍然欢迎。在
电流输出:
下面的注释是一些示例输出(使用python3完成的,以便安装matplotlib的最新版本):Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
>>>
... import matplotlib as mpl
... print(mpl.__version__)
... rc_fonts = {'figure.figsize': (15, 9.3)}
... mpl.rcParams.update(rc_fonts)
... import matplotlib.pylab as plt
... plt.plot(*[range(10)]*2)
...
Backend Qt4Agg is interactive backend. Turning interactive mode on.
2.2.0rc1+124.gf1f83f6
>>>
... print(plt.gcf().get_size_inches())
... print(mpl.rcParams['figure.figsize'])
... plt.gcf().set_size_inches(15, 9.3, forward=True)
... print(plt.gcf().get_size_inches())
...
[ 10.35 9.3 ]
[15.0, 9.3]
[ 15. 9.3]
演示
问题的根源
正如在接受的答案中所解释的,问题是我使用了多个显示器,而Matplotlib无法生成比主显示器大的窗口。不幸的是,改变Ubuntu认为的主要显示内容目前是一个未解决的错误。因此,问题不在于Matplotlib,而在于Ubuntu。我在设置中将显示器设置为左上角的显示器,从而解决了这个问题。在
最后
以上就是坚强耳机为你收集整理的python figure size_Matplotlib Figuresize被rcParams忽略的全部内容,希望文章能够帮你解决python figure size_Matplotlib Figuresize被rcParams忽略所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复