当前位置:  开发笔记 > 前端 > 正文

在没有X11的机器上将绘图导出为Mathematica中的图像(即,不涉及前端)

如何解决《在没有X11的机器上将绘图导出为Mathematica中的图像(即,不涉及前端)》经验,为你挑选了1个好方法。

请考虑以下带有内核命令行界面的对话框:

$ math
Mathematica 6.0 for Linux x86 (32-bit)

In[1]:= p = Plot[x^2, {x,-1,1}]
Out[1]= -Graphics-

In[2]:= Export["foo.png", p]
Out[2]= foo.png

这在一台机器上工作正常$Version = 6.0 for Linux x86 (32-bit) (June 2, 2008)但在$Version = 7.0 for Linux x86 (64-bit) (November 11, 2008)具有以下错误的机器上失败:

Export::nofe: A front end is not available; export of PNG 
requires a front end.

我可以想到任何其他图像格式的类似错误.

所以问题是,我怎样才能获得Mathematica内核,没有前端,导出图像?为什么它在Mathematica 6.0中顺利运行?如果以上示例适用于版本7,请告诉我们!

PS:版本7引入了该功能,UsingFrontEnd但失败了

Developer`UseFrontEnd::nofestart: 
Unable to launch a front end. Proceeding without a front end.

大概是因为机器上没有安装X11.

附录

事实证明,在这方面版本6和版本7之间没有区别.相反,在版本为6的机器上,前端正在静默调用.正如这个问题的答案所表明的那样,另一台机器的问题是没有X服务器,因此无法调用前端.



1> trybik..:

您需要一个前端来从MathKernel导出图形.图形的渲染完全由前端覆盖.没有前端,您没有要导出的图形.没有解决方法.

如果你有一个工作前端,你可以做的是使用:

UseFrontEnd[Export[filename,graphics]]

这将从终端调用前端,允许您导出图形.

要在没有安装X服务器和Windows管理器的Linux机器上安装工作前端,您有以下选择:

    使用其他机器的X显示器.参见例如http://www.hungry.com/~jamie/xexport.html.基本上它归结为设置环境变量export DISPLAY=machine_address:0.0或在每个执行选项期间传递-display machine_address:0.0.

    本地安装Xvfb,这是一个X服务器帧缓冲区.它非常简单易用.参见例如Xvfb上的维基百科条目.您可以在运行Xvfb时设置X显示Xvfb :display_nr &,然后像以前的选项一样使用它.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有