gpt4 book ai didi

python - Matplotlib Figuresize 被 rcParams 忽略

转载 作者:行者123 更新时间:2023-12-01 02:08:04 26 4
gpt4 key购买 nike

我之前使用过以下方法来确保图中的图形尺寸大小一致:

import matplotlib as mpl
rc_fonts = {'figure.figsize': (15, 9.3)}
mpl.rcParams.update(rc_fonts)
import matplotlib.pylab as plt

但是,我现在发现对于我通常的默认值 (15, 9.3) 这被忽略了。下面演示了这一点:

import matplotlib as mpl
rc_fonts = {'figure.figsize': (15, 9.3)}
mpl.rcParams.update(rc_fonts)
import matplotlib.pylab as plt
# I draw some boring plot.
plt.clf()
plt.plot(*[range(10)]*2)
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, 9.3]。但是,如果我将默认值设置得非常大或非常小,例如(32, 19.3) 那么图形窗口的大小就正确了。我想保留更改 rcParams 来设置默认值的所需路径,而不是尝试通过制作临时虚拟图来设置它两次。这是一个错误,还是我以错误的方式处理这个问题?

详细信息:

  • Python 2.7.12(在虚拟环境中,必须)。
  • 后端TkAgg(我希望保持原样)。
  • Matplotlib 版本 2.1.0。 (此错误/功能在 2.1.2 版本中也仍然存在)。

PS - 我更喜欢避免制作 matplotlib figax 对象,而是直接使用 plt 接口(interface)。如果可能的话,我想通过任何解决方案保持这种方式。

可能的已知问题:

我发现以下问题 2716在 github 上,我认为这是造成此问题的原因,但没有出现任何适合 rcParam 设置路由的修复。因此,仍然欢迎任何帮助或建议。

当前输出:

下面的注释后面是一些示例输出(使用 Python 3 完成,以便我安装最新版本的 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]

演示

enter image description here

问题的根源

正如已接受的答案中所解释的,问题是我使用了多个显示器,并且 Matplotlib 无法生成大于主显示器的窗口。不幸的是,改变 Ubuntu 认为的主显示目前是一个 Unresolved 错误。因此问题不在于 Matplotlib,而在于 Ubuntu。我通过在设置中将显示设置为左上角显示器来解决此问题。

最佳答案

出现此问题的原因是 there are several screens in use并且该图所示的不是主要的。

目前无法自动显示大于主屏幕上最大化窗口所允许的图形。如果图形大于此值,它仍会缩小以适合绘图窗口。

启动窗口后,确实可以将图形调整为任何其他尺寸,就像问题中使用的那样

plt.gcf().set_size_inches(15, 9.3, forward=True) 

关于python - Matplotlib Figuresize 被 rcParams 忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48872145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com