How to print figure to an .eps file properly?

54 次查看(过去 30 天)
I'm printing the same figures as .png and .eps files. The .png looks fine, but the .eps appear to have some issues:
  • Somehow the image is cut to minimal space, but it also appear to cut the last number in my X axis.
  • My Y axis is set to a log scale, and so the 10^x (x=0,1,2,...) numbers don't look good at all (they look fine in the .png file).
  • In the legend of one of my figures there is an equation using sprintf(...). The text there doesn't scale properly with the box of the legend - it goes beyond the box untill it is cut in the bounds of the image.
I'm using the commands:
...
print(figure_current,'-dpng','-r200',file_figure_png_full_location);
...
print(figure_current,'-depsc','-painters',file_figure_eps_full_location);

采纳的回答

the cyclist
the cyclist 2019-8-19
Try using '-opengl' rather than '-painters' for the renderer.
  5 个评论
Rik
Rik 2019-8-28
If I recall correctly, print selects the renderer based on the image format (pixel or vector). That should be mentioned in the doc.
the cyclist
the cyclist 2019-8-28
I don't recall for sure, and I'm currently on a machine that doesn't have MATLAB installed (horrors!) so I can't check. But I think the default renderer might be something like "Auto", meaning that the MATLAB will choose which one to use based on properties of the figure. I poked around the documentation a bit, but could not find a definitive answer.

请先登录,再进行评论。

更多回答(1 个)

the cyclist
the cyclist 2019-8-17
Try using export_fig.
  1 个评论
tensorisation
tensorisation 2019-8-18
编辑:tensorisation 2019-8-18
Before resorting to trying to use this external elaborate shared library tool, isn't there a way to just properly save a figure as an .eps file in Matlab?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by