有可能吗?下面的代码说明了我想要做的事情:
xdata = [0 1 2];
ydata = [0 1 0];
h = patch(xdata,ydata,'w');
set(h, 'FaceAlpha', 0.2);
print -dpng myfig
如果我使用选项-nodisplay
启动MATLAB并运行上面的代码,MATLAB只会给我一个核心转储。我认为MATLAB应该比没有进一步解释的崩溃更好一些,但我知道这是因为opengl和zbuffer渲染器在终端仿真模式下都不可用。
我通过以.svg
格式绘制透明图来解决这个问题,但对我来说这不是一个理想的解决方案。我的MATLAB脚本生成的HTML报告包含许多嵌入式图形,大多数浏览器在渲染包含多个(相对复杂的).svg图像的页面时表现非常差。那么,有没有人知道更好的解决方案?
答案 0 :(得分:0)
此问题的间接解决方案是使用plot2svg()将透明图形打印到.svg
文件,然后使用Inkscape将.svg
文件转换为{{ 1}},.png
或Inkscape支持的任何其他格式。 Inkscape提供了相当不错的command line support,因此您可以轻松编写MATLAB的整个过程脚本。 Inkscape适用于Windows,Linux和Mac OS X.