gpt4 book ai didi

python - 系统范围的 matplotlib 后端选择取决于显示可用性

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:31 25 4
gpt4 key购买 nike

假设我们有一台可以在本地或远程访问的计算机(都使用 X 服务器转发 [ssh -X] 和不使用 ssh)。

当使用 matplotlib 时,我们可能希望根据我们所处的 session 类型使用不同的后端。Agg 当没有 X 服务器时,我们得到绘图而不是异常,并且 TkAgg 当有这样我们就可以玩更多的情节。

但所有这些都是静态解决方案,如果您总是希望使用相同的后端(每台计算机、每个用户甚至每个脚本)

,那么这些都是静态解决方案

如果您希望根据可用性 X 服务器在给定脚本中选择后端,您可以查看 the display at the beginning of the script and then load whichever backend you prefer .但是,您需要在要在这两种情况下运行的每个脚本的开头插入这行代码...

是否有任何方法可以根据显示的可用性选择后端,但作为适用于系统范围或用户范围的配置,对于运行的任何脚本?我正在考虑类似默认后端的东西,当有可用的显示时,当没有可用的显示时,它会应用而不修改脚本(除非脚本专门选择一些后端)。这可能吗?

最佳答案

我希望 matplotlib 在某处具有此后备功能作为设置,但我找不到任何东西。

所以我制作了这个脚本,如果未设置 DISPLAY,您可以将其放入 .bashrc 中自动回退。

您可以调整后端以使用和不使用 DISPLAY(替换 TkAggAgg)并更改 matplotlibrc 的位置(两个地方).

# create the settings file if it doesn't exist
cp -n /etc/matplotlibrc ~/.config/matplotlib/matplotlibrc
# set the backend to use depending on $DISPLAY
if [ -z "$DISPLAY" ]; then backend=Agg; else backend=TkAgg; fi
# find the line(s) starting with 'backend' and replaced them
sed -i "s/^backend.*/backend : $backend/" ~/.config/matplotlib/matplotlibrc

如果您有通过 ssh 和图形界面(如问题)使用的 homedir,这将特别有用;否则你可以只创建一个静态的 matplotlibrc

关于python - 系统范围的 matplotlib 后端选择取决于显示可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484393/

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