matplotlib情节创建在无头服务器上非常慢

时间:2014-08-26 20:34:43

标签: python matplotlib headless

我在我的家庭服务器上运行Ubuntu 14.04(服务器版),并使用TkAgg作为后端安装了带有matplotlib 1.3.1的Python 2.7.6。我通过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点似乎没有任何区别。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

为了构建@Paul H的答案,此代码将绘图输出为SVG图形,然后使用外部feh实用程序显示它。

设置后端很重要 - 请查看What is a Backend以获取更多信息。

import matplotlib
# see http://matplotlib.org/faq/usage_faq.html#what-is-a-backend
matplotlib.use('Svg')

import os
import matplotlib.pyplot as plt

x=[0,1,2,3,4]
y=[0,1,4,9,16]
plt.plot(x,y)
plt.savefig('plot.svg')
os.system('feh plot.svg')       # or "eog" for Gnome