matplotlib绘图创建在无头服务器上非常慢

ldfqzlk8  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(162)

我在我的家庭服务器上运行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点似乎没有任何区别。
有什么想法吗?

h79rfbju

h79rfbju1#

为了在@ PaulH的答案的基础上进行构建,此代码将绘图输出为SVG图形,然后使用外部feh实用程序显示它。
设置后端很重要--查看什么是后端以了解更多信息。

来源

import matplotlib
# see http://matplotlib.org/faq/usage_faq.html#what-is-a-backend
# or
# https://matplotlib.org/stable/users/explain/backends.html
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

相关问题