【发布时间】:2014-08-26 20:34:42
【问题描述】:
我在我的家庭服务器上运行 Ubuntu 14.04(服务器版),我安装了 Python 2.7.6 和 matplotlib 1.3.1,使用 TkAgg 作为后端。我通过 ssh -Y 连接到它。
我遇到的问题是绘图对象的创建速度非常慢。比如:
import matplotlib.pyplot as plt
x=[0,1,2,3,4]
y=[0,1,4,9,16]
plt.plot(x,y)
此代码需要大约 10 秒才能运行,而它应该只需要几分之一秒。请注意,它甚至没有显示情节,如果我添加 plt.show() 它在时间上没有显着差异。在 python 解释器或文件中运行代码也没有区别。一旦我等待足够长的时间,情节就会很好地显示在我的本地屏幕上。同样绘制 5 个点或 50 个点似乎没有任何区别。
有什么想法吗?
【问题讨论】:
-
我的猜测是大部分时间都花在了导入 matplotlib 及其依赖项上。
-
如果我在 python 解释器中逐行运行它,导入命令不会花费时间,它只是 plt.plot(x,y) 命令几乎占用了整个十秒。在我的本地机器上也没有那么滞后,那为什么它会存在于远程机器上呢?
-
TkAgg 是一个图形化的交互式后端。但是您的服务器是无头的。尝试不同的后端。
-
你有推荐的后端尝试吗?
-
您的选择是:GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo CocoaAgg MacOSX Qt4Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG。如果您只保存为 PNG 文件,我会选择 Agg。除此之外,我会根据情况使用 PDF 或 SVG。
标签: python matplotlib headless