如何“切换到Agg后端之一”?

3
我有与这个问题相同的问题,即在使用matplotlib和networkx时,在Mac OS X 10.8.5上无法显示标签。
那个帖子中的解决方案是“通过切换到基于Agg的后端之一来避免此问题”,由@tcaswell 在这里。有人能告诉我这是什么意思/如何操作吗?
很抱歉开启一个新的主题,但我没有足够的声誉在之前的帖子上进行评论或提问!如果有人能合并这篇文章和之前的文章,那就最好了。
谢谢 Bobby
2个回答

8

这应该可以运行(需要注意use在导入pyplot之前调用):

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

如果您搜索“Agg”或“backend”,则其他问题中会有更多详细信息,例如这个
编辑:抱歉,也许我没有完全理解您想要做的事情。正如sebix所指出的那样,Agg是用于绘制到文件(即非交互式绘图)的后端,如果您想在屏幕上显示交互式绘图,则使用其中一个交互式后端,例如Qt4Agg(请注意,这需要PyQt4)。

谢谢。现在我可以无错误地导入import matplotlib.pyplot as plt!但是它没有显示图表:( 例如:import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt x = range(10) y = [a**2 for a in x] plt.plot(x,y) plt.show()没有错误和图表。有什么想法吗? - travelingbones
抱歉,我不知道如何在评论中创建代码块。 - travelingbones
我应该提到的是,将 plt.show() 替换为 plt.savefig(...) 是行得通的!因此,如果我保持 Agg 后端,则无法显示绘图(它们应该是交互式的),如果我不使用 'Agg',则会出现来自 [这里](https://dev59.com/voPba4cB1Zd3GeqPsG4Z )的错误。 - travelingbones
2
'Agg' 后端不会显示任何内容 - 它是无头的。如果您想要交互式界面,请查看 TkAggGtkAggQtAgg - sebix

0

你也可以使用

plt.switch_backend('Qt4Agg')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接