gpt4 book ai didi

python - 使用 matplotlib *没有* TCL

转载 作者:太空狗 更新时间:2023-10-29 21:23:42 25 4
gpt4 key购买 nike

正如标题所言。有没有办法在 安装 TCL 的情况下使用 matplotlib 库?请不要告诉我硬着头皮安装 TCL - 我知道该怎么做,但出于我自己的(好吧,也许是愚蠢的)原因,我不想这样做。

我不关心显示图,我只想能够以 png 格式输出它们。我尝试了各种方法(使用不同的后端等),但 matplotlib 一直想找到 tcl 来工作:( 为什么 TCL 对于 matplotlib 如此重要?

另外,请注意我使用的是 Windows——我已经使用 pip 安装了所有可能需要的东西(numpy、pandas、matplotlib)。

@gerrit 的解决方案是正确的(我试图更改后端,但我是在 加载 pyplot 之后这样做的——重要的是您需要在加载 pyplot 之后立即更改后端导入 matplotlib)。这是一个使用它的小例子:

import matplotlibmatplotlib.use('Agg')import matplotlib.pyplot as pltfig, ax = plt.subplots( nrows=1, ncols=1 )ax.plot([0,1,2], [10,20,3])fig.savefig('foo.png')plt.close(fig)

这将在不使用 TCL 的情况下输出名为“foo.png”的文件\o/

最佳答案

Matplotlib 3.0 及更新版本

(于 2018 年 10 月添加到答案中)

从2018年9月19日发布的Matplotlib 3开始,问题中描述的问题应该不会出现。来自what's new part of the documentation :

The default backend no longer must be set as part of the build process. Instead, at run time, the builtin backends are tried in sequence until one of them imports.

Headless linux servers (identified by the DISPLAY env not being defined) will not select a GUI backend.

因此,只要确保未定义 DISPLAY,在 headless Linux 服务器上运行脚本时,后端就不会遇到任何问题。

Matplotlib 2.2 及更早版本

(2016 年 5 月的原始答案)

加载matplotlib后立即输入

matplotlib.use('Agg')

如果有的话,在加载 pyplot 之前执行此操作。

默认情况下,Matplotlib 使用 TkAgg 后端,这需要 Tcl。如果您不想显示绘图,Agg 就可以了。其他替代方案包括 WXQTAgg,但两者都需要安装额外的库。

或者,您可以在 matplotlibrc 文件中设置此指令:

backend : Agg

有关详细信息,请参阅 Matplotlib Usage FAQ 什么是后端?

关于python - 使用 matplotlib *没有* TCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37459386/

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