python – 在没有Window的情况下绘制和写入imagefile
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 在没有Window的情况下绘制和写入imagefile,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1885字,纯文字阅读大概需要3分钟。
内容图文
![python – 在没有Window的情况下绘制和写入imagefile](/upload/InfoBanner/zyjiaocheng/816/7458af887a844f17b208d0656344993d.jpg)
我发现使用matplotlib只是将图表绘制到文件中并不像阅读教程那样容易.
在教程中解释说,您只是累积数据,然后:
import matplotlib.pyplot as plt
# ... fill variables with meaningful stuff
plt.plot(data.x,data.y,format_string)
plt.savefig(filename)
并做了.如果你只是将它作为shell执行,那也可以正常工作.但是,如果您将此代码提供给没有任何窗口的进程(如jenkins),那么您只会收到以下错误:
Traceback (most recent call last):
File "./to_graph.py", line 89, in <module>
main()
File "./to_graph.py", line 78, in main
plt.plot(warnings[0],warnings[1],args.format_warnings,label="Warnings")
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2460, in plot
ax = gca()
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 701, in gca
ax = gcf().gca(**kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 369, in gcf
return figure()
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 343, in figure
**kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
window = Tk.Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1688, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
正如我理解堆栈跟踪行周围的源代码一样,这个错误的原因是backend_tkagg.py期望使用现有的窗口(请参阅stacktrace中的Tk.Tk()行).所以我想知道是否有办法用matplotlib(或者python)绘制图表,而不依赖于窗口(-manager)来完成工作.
解决方法:
您需要设置一个直接写入文件的后端.
有关详情,请参阅:
http://matplotlib.sourceforge.net/faq/usage_faq.html#what-is-a-backend
您需要在导入pyplot之前调用matplotlib.use.
例如 :
import matplotlib
matplotlib.use("AGG")
import pyplot
# continue as usual
实际上,我刚刚发现这也是文档中给出的解决方案:
http://matplotlib.sourceforge.net/faq/howto_faq.html#generate-images-without-having-a-window-appear
内容总结
以上是互联网集市为您收集整理的python – 在没有Window的情况下绘制和写入imagefile全部内容,希望文章能够帮你解决python – 在没有Window的情况下绘制和写入imagefile所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。