# Get from

### Highlights from export_fig

• print2eps.m
• export_fig.m
• append_pdfs(varargin)
APPEND_PDFS Appends/concatenates multiple PDF files
• copyfig(fh)
COPYFIG Create a copy of a figure, without changing the figure
CROP_BORDERS Crop the borders of an image or stack of images
• eps2pdf(source, dest, cro...
EPS2PDF Convert an eps file to pdf format using ghostscript
• fix_lines(fstrm, fname2)
FIX_LINES Improves the line style of eps files generated by print
• ghostscript(cmd)
GHOSTSCRIPT Calls a local GhostScript executable with the input command
• im2gif(A, varargin)
IM2GIF Convert a multiframe image to an animated GIF file
• isolate_axes(ah, vis)
ISOLATE_AXES Isolate the specified axes in a figure on their own
• pdf2eps(source, dest)
PDF2EPS Convert a pdf file to eps format using pdftops
• pdftops(cmd)
PDFTOPS Calls a local pdftops executable with the input command
• print2array(fig, res, ren...
PRINT2ARRAY Exports a figure to an image array
• user_string(string_name, ...
USER_STRING Get/set a user specific string
• using_hg2(fig)
USING_HG2 Determine if the HG2 graphics engine is used
• View all files
4.89169
4.9 | 448 ratings Rate this file 3219 Downloads (last 30 days) File Size: 352 KB File ID: #23629 Version: 1.99

# export_fig

### Yair Altman (view profile)

11 Apr 2009 (Updated )

Exports figures nicely to a number of vector & bitmap formats

### Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

File Information
Description

This function saves a figure or single axes to one or more vector and/or bitmap file formats, and/or outputs a rasterized version to the workspace, with the following properties:
- Figure/axes reproduced as it appears on screen
- Embedded fonts (pdf only)
- Improved line and grid line styles
- Anti-aliased graphics (bitmap formats)
- Render images at native resolution (optional for bitmap formats)
- Transparent background supported (pdf, eps, png)
- Semi-transparent patch objects supported (png only)
- RGB, CMYK or grayscale output (CMYK only with pdf, eps, tiff)
- Variable image compression, including lossless (pdf, eps, jpg)
- Optionally append to file (pdf, tiff)
- Vector formats: pdf, eps
- Bitmap formats: png, tiff, jpg, bmp, export to workspace

This function is especially suited to exporting figures for use in publications and presentations, because of the high quality and portability of media produced.

Note that the background color and figure dimensions are reproduced (the latter approximately, and ignoring cropping & magnification) in the output file. For transparent background (and semi-transparent patch objects), use the -transparent option, and set the axes 'Color' property to 'none' where desired. Pdf, eps and png are the only file formats to support a transparent background, while the png format alone supports transparency of patch objects.

When exporting to vector format (pdf & eps), and to bitmap using the painters renderer, this function requires that ghostscript is installed on your system. You can download this from:
http://www.ghostscript.com

When exporting to eps it additionally requires pdftops, from the Xpdf suite of functions. You can download this from:
http://www.foolabs.com/xpdf

Usage examples and tips can be found in the README section at:

A technical description of the various components can be found here:
http://undocumentedmatlab.com/blog/export_fig

This submission was originally created by Oliver Woodford. Yair Altman maintains this utility since Jan 2015.

When reporting bugs, please raise an issue via GitHub: https://github.com/altmany/export_fig/issues
Do not paste the error into the comments below - I will not respond to these.

Acknowledgements
Required Products MATLAB
MATLAB release MATLAB 8.4 (R2014b)
Other requirements Ghostscript, Xpdf
24 Nov 2015 neo

### neo (view profile)

This submission no longer (2014b onward) improves line styles in exported eps figures... As this file is still getting updates may be author should check this feature.

23 Nov 2015 Tina Fuhrmann

### Tina Fuhrmann (view profile)

I forgot to add the correct search path, sorry! With the current version I do not get the warning any more.

Sorry for posting twice the last time ... is there any way to delete a comment?

23 Nov 2015 JoseLuis

### JoseLuis (view profile)

Great tool! thanks for the contribution. I'm just having a bit problem. I'm loading and modifying an image of 360x360 pixels. When I export it with export_fig I get an image of 362x362. Could you give me a hint why? I'm using Matlab 2014b in Windows 8. Thanks!

23 Nov 2015 Tina Fuhrmann

### Tina Fuhrmann (view profile)

Recently I get the following warning message in R2015b when using export_fig with boxplot and plot:
Warning: graphicsversion will be removed in a future release.
In using_hg2 (line 15)
In export_fig>parse_args (line 797)
In export_fig (line 216)

Thanks for the great file, I am using it since a few months and I am thrilled :).

23 Nov 2015 Tina Fuhrmann

### Tina Fuhrmann (view profile)

Recently I get the following warning message in R2015 when using export_fig with boxplot and plot:
Warning: graphicsversion will be removed in a future release.
In using_hg2 (line 15)
In export_fig>parse_args (line 797)
In export_fig (line 216)

Thanks for the great file, I am using it since a few months and I am thrilled :).

20 Nov 2015 Davide

### Davide (view profile)

It works pretty fine with R2015b.

19 Nov 2015 Dan K

### Dan K (view profile)

Note that saving to the clipboard was broken in R2015b. The fix is described in (apply at line 733):

15 Nov 2015 Carlos Meza

### Carlos Meza (view profile)

Excellent contribution. I have problems with (surfc,meshc) not generated vectors. When I am using surf if generated. Any solution?. Thank you very much for your collaboration

15 Nov 2015 vthuongt

### vthuongt (view profile)

Plotting works fine except of plots generated by using bar() or histogram().
There I can't get any transparent pdf files with vector graphics.
My command used was:
export_fig( 'histo.pdf','-pdf', '-transparent',figure(1))

15 Nov 2015 vthuongt

### vthuongt (view profile)

Plotting works fine except of plots generated by using bar() or histogram().
There I can't get any transparent pdf files with vector graphics.
My command used was:
export_fig( 'histo.pdf','-pdf', '-transparent',figure(1))

Comment only
13 Nov 2015 xikang

### xikang (view profile)

Excellent when I want to get a transparent figure. Thank you very much!

12 Nov 2015 Laura

### Laura (view profile)

09 Nov 2015 Andy Hueni

### Andy Hueni (view profile)

PDF export works for me on Mac OS X El Capitan with R2015b after installing Ghostscript-9.16.pkg from http://pages.uoregon.edu/koch/.
Had to move to this package as the Matlab fillPage and print functions I used till now messed it up after the Capitan upgrade, can't say if it applies to Yosemite as well.

02 Nov 2015 Laura

### Laura (view profile)

I've been using this function since forever to produce article-level figures with tight control of the dimensions

30 Oct 2015 Yair Altman

### Yair Altman (view profile)

@MSch - export_fig works well on R2015b. The removal of the builtin Matlab ghostscript does not affect export_fig, since export_fig does not depend on it. You can install ghostscript executable directly from http://www.ghostscript.com and then export_fig will use it.

I remind everyone that I will not respond to feature requests or bug reports in this comments section - if you have something to request or to report then use Github's issues page to report and track your issue: https://github.com/altmany/export_fig/issues

Comment only
30 Oct 2015 MSch

### MSch (view profile)

does not run with Matlab 2015b due to this: "MATLAB no longer ships with the Ghostscript® library. Remove all instances of code that use ghostscript.m." (see ReleaseNotes -> graphics -> Functionality being removed or changed)

I'll stick with 2015a till there's a workaroud, because I love this tool, especially the append_pdfs function :) Thanks!

29 Oct 2015 David

### David (view profile)

I have been using export_fig for a long time. After switching to R2015b, it threw a warning about using an obsolete function (graphicsversion, I believe) so I got the latest version. This produces an invalid eps file,so the eps2pdf crashes. Preview also cannot open the eps file. The error report from ghostscript is
Error using eps2pdf (line 107)
Error: /undefined in bdef
Operand stack:
dom --nostringval--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval--
--nostringval-- --nostringval-- false 1 %stopped_push
1951 1 3 %oparray_pop 1950 1 3 %oparray_pop 1934
1 3 %oparray_pop 1820 1 3 %oparray_pop
--nostringval-- %errorexec_pop .runexec2 --nostringval--
--nostringval-- --nostringval-- 2 %stopped_push
--nostringval--
Dictionary stack:
--dict:1194/1684(ro)(G)-- --dict:0/20(G)-- --dict:78/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 64
GPL Ghostscript 9.16: Unrecoverable error, exit code 1

Comment only
27 Oct 2015 Yu GUAN

### Yu GUAN (view profile)

Wonderful code

26 Oct 2015 Cedric Noordam

### Cedric Noordam (view profile)

Great tool, really improves the look of my graphs. Only thing so far is that cropping is either on or off, with no option to crop only top/bottom or left/right. I need this to have proper scaling of the plotbox area in Latex files. I had to fix it by just disabling left/right cropping in the crop_borders.m file disabling it for good. Would be great to have specific command for left/right/top/bottom cropping on or off. That's just a minor thing though.

21 Oct 2015 Ben Webber

### Ben Webber (view profile)

Great tool.

However, it seems that when text objects are positioned using normalized units, these positions are not properly retained when exporting the figure. I regularly use normalized units as I find these more intuitive. I'm using Matlab 2015b on MacOS 10.9 (the problem also occurs on Matlab 2012b).

11 Oct 2015 Åsmund

### Åsmund (view profile)

I have been trying to solve the transparency issue for a long time. Now it's finally solved! Thank you!

07 Oct 2015 NenaV

### NenaV (view profile)

05 Oct 2015 Dimitrios Konstantinidis

### Dimitrios Konstantinidis (view profile)

Hello Yair,
Has print2eps been tested with R2015b? It seems that the font mapping doesn't work.

I have a figure with Times font throughout (roman and bold). I made an eps using print2eps, but when I imported this in MS Word and tried to create a PDF file, I get a message like:
%%[ Error: invalidfont; OffendingCommand: findfont ]%%

Stack:
/Font
/Times-Roman-Bold

%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%
%%[ Warning: PostScript error. No PDF file produced. ] %%

Thanks

04 Oct 2015 Scott Williams

### Scott Williams (view profile)

By the way the 1 star rating was an accident. I rate this file 6/5.

04 Oct 2015 Scott Williams

### Scott Williams (view profile)

I have also noticed greek letters distorted when using export_fig. I used to export as -png with compression -m3.
Exporting to pdf file removes the greek letters problem, and increases the quality of the plot.

23 Sep 2015 William

### William (view profile)

I use this all the time to create plots, and it has been great! Recently I've noticed it does not create Greek letters correctly in the title. There is another post on Github noting the same problem for Matlab 2015a. I'm using Matlab 2014b on Windows 7. Does anyone know why this is happening or how to fix it?

Thanks for the help!

20 Sep 2015 xinlu wang

### xinlu wang (view profile)

17 Sep 2015 Keegan Moore

### Keegan Moore (view profile)

02 Sep 2015 cheng joylin

### cheng joylin (view profile)

02 Sep 2015 cheng joylin

### cheng joylin (view profile)

26 Aug 2015 David MERCIER

### David MERCIER (view profile)

26 Aug 2015 David MERCIER

### David MERCIER (view profile)

24 Aug 2015 Jitin Beri

17 Aug 2015 Al

### Al (view profile)

Hi

This is working great for me with exception of using it with the function Magnify on Figure. http://www.mathworks.com/matlabcentral/fileexchange/26007-on-figure-magnifier

For some reason, when Export_Fig runs, the x-axis of some of the magnified figures changes to become illegible. Its almost like some additional decimal places are added to the x-axis and they all overlap each other. As soon as Export_Fig is done, the axis goes back to normal.

Any help on this would be appreciated.

15 Aug 2015 VItor ribeiro

### VItor ribeiro (view profile)

This is my favorite tool to export graphics. However i found that i am not able to export markers that have a certain amount of alpha parameter(yes i found a way to do it and maybe you can find it if you dig on internet). When i export to eps the effect of shade in the background of the marker disappear. The way that i can set transparency in markers is the following:

sMarkers=h1.MarkerHandle; %h1 is line handle
sMarkers.FaceColorData = uint8(255*[0;0;0;0.5]); %fourth element allows setting alpha
sMarkers.EdgeColorData = uint8(255*[0;0;0;0]);

11 Aug 2015 mashtine

### mashtine (view profile)

Hi there,

This is a great code but I cannot seem to understand that when I try to use export_fig with larger font sizes, a grey box appears over my axis labels when I try to export the figure in a higher resolution. This is slowly driving me insane and I cannot seem to find anything on it. Perhaps it is my graphics card? Or just me? I use something like this for instance:

export_fig 'filename.png' -png -opengl -r150;

07 Aug 2015 Hassan Naseri

### Hassan Naseri (view profile)

It's an amazing tool.

Thanks for maintaining to support 2014 and 2015 MATLAB versions.

22 Jul 2015 Vasilis Kapetanidis

### Vasilis Kapetanidis (view profile)

10 Jul 2015 Chenming Zhang

### Chenming Zhang (view profile)

I am wondering why the font is extremely small under linux? I have tried both gentoo and ubuntu, the problem persists. matlab version also have been tested but all ends up with very small fonts.

Thanks

Comment only
30 Jun 2015 Deniz

### Deniz (view profile)

28 Jun 2015 Lavanya

### Lavanya (view profile)

Hi.. Actually i used this code last year to save fig as pdf and append the same, and it worked great..
but now when I try to use 'append', unwanted patches appear on the appended pdf file. I am using MATLAB 2014b. Will you be able to help me out.??
otherwise, the code works great.!! superb job!!

17 Jun 2015 Stephane

### Stephane (view profile)

Vital !!
Thank you very much !

08 Jun 2015 Jens Keienburg

### Jens Keienburg (view profile)

Solves all my issues with Matlab - LaTeX compatibility.

02 Jun 2015 Ilya Belevich

### Ilya Belevich (view profile)

awesome!

22 May 2015 Alan Cole

### Alan Cole (view profile)

FYI. For my comment on May 13th I corrected the issue by temporarily turning of Windows 7 UAC. When set to none it worked correctly.

14 May 2015 John

14 May 2015 John

### John (view profile)

R2015a, Mac Pro, Mavericks. Exporting to PNG. Works great, fixed my sizing and clipping problems.

13 May 2015 Alan Cole

### Alan Cole (view profile)

With the new version I receive the following error:

Warning: Path to ghostscript installation could not be saved. Enter it manually in C:\Program
Files\MATLAB\altmany-export_fig-b32040d\.ignore\ghostscript.txt.

The \.ignore\ghostscript.txt does not currently exist.

13 May 2015 Peng Xu

### Peng Xu (view profile)

Great tool

11 May 2015 Gabriel Droulers

### Gabriel Droulers (view profile)

I have a problem with the exported .png file. The exponential notation on the top of the left Y axis does not show in the png exported image. Has anyone experienced this?
For instance I have a plot with value 0 to 5 "x10^-12". The exponential shows at the top of the axis but none of the formats I have tried (eps, pdf, jpg, png) show it.

Otherwise, nice work!

10 May 2015 Ludwig

### Ludwig (view profile)

I have used this tool in matlab 2013a and it works perfectly. In matlab 2015a, the exact code gives a issue with exporting imagesc figures with colorbars. It always displays a white diagonal stripe from botton left to bottom left to top right. This occurs no matter which colormap is used. Has anyone tried it on 2015a so far?

ps : excellent work

29 Apr 2015 Ignacio Lucas Avila Mangano

### Ignacio Lucas Avila Mangano (view profile)

It works excellent for me.

29 Apr 2015 Kevin Moerman

### Kevin Moerman (view profile)

21 Apr 2015 Nicholas D.

### Nicholas D. (view profile)

19 Apr 2015 Zulkifli Hidayat

### Zulkifli Hidayat (view profile)

07 Apr 2015 Menno Poot

### Menno Poot (view profile)

A great utility to export my figures to high quality .eps files.

07 Apr 2015 oceanus

### oceanus (view profile)

When exporting Matlab2015a ".fig" file to ".pdf", the edges are cut off, especially the right side.

04 Apr 2015 Sergei Paleichuk

### Sergei Paleichuk (view profile)

02 Apr 2015 simbaforrest

02 Apr 2015 Jeff

### Jeff (view profile)

Hi
I'm having trouble with matlab 2015a
Below is my error message

Error using eps2pdf (line 107)
Error: /undefined in bdef
Operand stack:
dom --nostringval--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval--
--nostringval-- false 1 %stopped_push 1983 1 3 %oparray_pop 1982 1 3 %oparray_pop 1966 1 3 %oparray_pop 1852 1
3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push
--nostringval--
Dictionary stack:
--dict:1201/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
Current file position is 64
GPL Ghostscript 9.15: Unrecoverable error, exit code 1

Error in export_fig (line 433)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);

01 Apr 2015 Lei Ding

### Lei Ding (view profile)

31 Mar 2015 Hussein Sahli

### Hussein Sahli (view profile)

26 Mar 2015 atron

### atron (view profile)

Converting a figure with non-standard screen size to pdf on Unix fails
-----------------------------------------

I am trying to convert figures with non-default screen sizes into pdfs:

% open matlab figure file
h=openfig_default(fig_file_name);

% change figure size to non-default size
set(h,'units','normalized','outerposition',[0.1 0.1 0.5 0.5]);

% convert fig file to pdf
export_fig('out.pdf','-pdf', h, '-nocrop','-transparent','-painters', '-append');

This works nicely on Windows, but on Unix the figures in the pdf all have the same default size. Any ideas?

24 Mar 2015 Nicole Rüger

### Nicole Rüger (view profile)

great, but i have a problem.
ich will append a few pdfs.
this pdfs have variable filesnames und paths. I got follow error:

Error: /undefinedfilename in (Auswertung_24-Mar-2015\\-2.2-\\2.2_Extraktionsgte.pdf)
Operand stack:

Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push
Dictionary stack:
--dict:1191/1684(ro)(G)-- --dict:1/20(G)-- --dict:77/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.15: Unrecoverable error, exit code 1

thanks for help

17 Mar 2015 comm@ZeoN

### comm@ZeoN (view profile)

Serves the purpose very well. Thanks!

11 Mar 2015 Sagar

### Sagar (view profile)

I found the answer to my earlier question:
export_fig('exportfig_painters.png', '-png', '-painters', '-r300');

It works fine.

Comment only
11 Mar 2015 Sagar

### Sagar (view profile)

Hi,
I had used this program successfully in the past for printing figures made in matlab. But now I am having a problem. I am trying to print a high resolution map made using geoshow in matlab mapping toolbox. But when I execute the command say export_fig finename.png -r600, the file is saved but only the axis labels are printed, and not the whole figure. I can still print several other figures successfully, so the problem must be related to the mapping toolbox. Could you please help?
Thank you very much.
-Sagar

11 Mar 2015 Bob

### Bob (view profile)

Helped a lot, thanks!

24 Feb 2015 Yair Altman

### Yair Altman (view profile)

@Aniket - yes, export_fig does indeed accepts a handle to a figure/axes/uipanel

To all the others - you need to report the issue in the GitHub, otherwise they will not be tracked or fixed: https://github.com/altmany/export_fig/issues

Before submitting a new issue, please verify that it was not previously reported.

Comment only
24 Feb 2015 Jean

### Jean (view profile)

Hello,

I have the same issue as James Rankin in Matlab 2014b:

Error using eps2pdf (line 107)
Error: /rangecheck in definefont
Operand stack:
CMMI10 --dict:14/15(L)-- Font
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval--
--nostringval-- --nostringval-- false 1 %stopped_push
1951 1 3 %oparray_pop 1950 1 3 %oparray_pop
--nostringval-- 1934 1 3 %oparray_pop 1820 1 3
%oparray_pop --nostringval-- %errorexec_pop .runexec2
--nostringval-- --nostringval-- --nostringval-- 2
%stopped_push --nostringval-- 1901 2 3 %oparray_pop
Dictionary stack:
--dict:1188/1684(ro)(G)-- --dict:0/20(G)-- --dict:121/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 90501
GPL Ghostscript 9.15: Unrecoverable error, exit code 1

Error in export_fig (line 442)
eps2pdf(tmp_nam, pdf_nam, 1, options.append,
options.colourspace==2, options.quality);

Error in fit_ramsey (line 210)
export_fig(['fit_' filename], '-pdf');

Unfortunately, his fix is not working for me... It was working well with 2012b, I don't understand, as I am working with standard fonts...
Anyway, great soft, very usefull for scientific works !

19 Feb 2015 Aniket Vagha

### Aniket Vagha (view profile)

Brilliant tool! Image quality in pdfs is really good.

I was wondering if in case of multiple figures, could we use figure handles when using export_fig?

19 Feb 2015 Sauro Salomoni

### Sauro Salomoni (view profile)

17 Feb 2015 Elizabeth Jones

### Elizabeth Jones (view profile)

• 1 file
• 4.66667

Great code! It worked without any fiddling in R2014b and created high-quality PDFs that I can use for professional presentations, posters, and publications. Thanks a lot for making and maintaining this code.

08 Feb 2015 Durga Lal Shrestha

### Durga Lal Shrestha (view profile)

I have the legend at the Southoutside with horizontal orientation. When the box of the legend is set to 'off', a little bit bottom part of the legend is also cropped when exporting figure to eps and pdf (no problem with png). There is a no problem with box outline. The problem persists in MATLAB R2014b.

Does anyone else have similar issue?

Thanks.

Comment only
03 Feb 2015 Kai Shi

### Kai Shi (view profile)

I added a rectangle box in the figure and change the transparency of the box to 0.3. However, when I export the figure into latex. The transparency of the box is still 100%. With and without the -transparent option shows the same results. The code of generating the box is shown below:

annotation(hCCs,'rectangle',rectSize,...
'FaceColor','r','FaceAlpha',0.3,...
'LineStyle','none');

Comment only
30 Jan 2015 Javier Paredes

### Javier Paredes (view profile)

Thank you for this library, it is really usefull! Unfortunately, I am having serious issues with export_fig, specifically with the fileparts(tempname) portion of the code that specifies a temporary folder that the program uses to create/delete temp images. It is trying to use the system32 folder for one of our users and it is giving him access violation errors and crashing. I would like to be able to specify my own user specified temporary path on his computer that he does have read/write access to. This is not a capability of the tool out of the box but could be a simple optional addition that would save us a lot of grief. For now, I will have to do this myself on my export_fig copy. Thanks!

Comment only
30 Jan 2015 Tero

30 Jan 2015 Tero

29 Jan 2015 Erik

### Erik (view profile)

23 Jan 2015 James Rankin

### James Rankin (view profile)

I was receiving the following error after upgrading to Matlab 2014b (in Ubuntu 14.04):
------------------------------------------
Error using eps2pdf (line 107)
Error: /rangecheck in /findfont

...

Error in export_fig (line 442)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);
-----------------------------------------

I fixed this by commenting the following lines in eps2pdf

fp = font_path();
if ~isempty(fp)
options = [options ' -sFONTPATH="' fp '"'];
end

Comment only
22 Jan 2015 Yiqun Yang

### Yiqun Yang (view profile)

To be more specific, here is the example code.

figure(1)
plot(1:100,1:100)
xlabel('Frequency (Hz)')
ylabel('attenuation (Neper/m)')
set(gca,'fontsize',16)
export_fig test -pdf -transparent

Comment only
22 Jan 2015 Yiqun Yang

### Yiqun Yang (view profile)

Hi,

First thanks a lot for providing such a wonderful toolbox!

However, here I've found a bug when I switch to Matlab 2014b. In Matlab R2014b, when I was using the toolbox to generate pdf figure as:

export_fig ConvEstimateatten -pdf -transparent

The margin of the figure is not cropped as desiered. Could you have a look at it?

Thanks!

19 Jan 2015 Tintin Milou

### Tintin Milou (view profile)

Hi,

I've got another issue: How can I save the file in a different subfolder. I created a subfolder Fig and then, tried:

export_fig ../Fig/fig.pdf;

but that gave

Error using eps2pdf (line 107)
GPL Ghostscript 9.10: **** Could not open the file ../Fig/fig.pdf .
**** Unable to open the initial device, quitting.

Error in export_fig (line 442)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);

What am I doing wrong?

Comment only
19 Jan 2015 Tintin Milou

### Tintin Milou (view profile)

Hi,

I'm still a bit puzzled how to display tex symbols. For instance, one of my titles is
title('\pi^w')
and is properly displayed in the figure, but not the printed pdf (there, I get a colon to the power of w). I'm using the latest version of texshop 3.49.
Thanks!

Comment only
18 Jan 2015 Martin

### Martin (view profile)

To clarify, I'm trying to export a plot with a legend from a GUI axis using export_fig(handles.myaxis, filename). The legend does not show. If I plot with a legend from the command window and save the figure with export_fig the legend shows correctly.

Comment only
18 Jan 2015 Martin

### Martin (view profile)

Excellent function!

However, using 2014b, the legends disappear from my plots. This does not happen with 2014a. Is there a workaround or missing argument for 2014b?

18 Jan 2015 Yair Altman

### Yair Altman (view profile)

@Ian Zammit - the utility's changelog is listed at the bottom of this webpage.

@Linh, Ruben, Iain - please create corresponding issues in Github (check if the issue already exists there, before posting a new one). I have just received ownership of export_fig's maintenance and it could take me some time to dive into things and be able to fix them, so please be patient.

Comment only
16 Jan 2015 Bart Boesman

### Bart Boesman (view profile)

14 Jan 2015 Linh Nguyen

### Linh Nguyen (view profile)

Excellent tool! Thank you a lot. It works for most cases for me, except when I need to plot and export a big field (200x300, pcolor). Could anyone try and tell me why I cant get a resolved image please? Results I got is also in the folder:
https://www.dropbox.com/sh/41yxaivtfkf8uzn/AABm-AMXI-0zTGedz8IgMPb9a?dl=0

08 Jan 2015 Ruben Luis

### Ruben Luis (view profile)

Brilliant contribution!
However, it seems that something significant has changed when using R2014b. It does not seem to be possible to reduce the thickness of axis borders. Can you advise a workaround?

08 Jan 2015 Ben Puttnam

### Ben Puttnam (view profile)

24 Dec 2014 Ehsan

### Ehsan (view profile)

• 1 file
• 4.66667

Very very helpful, and easy to use.

16 Dec 2014 Ragheb

### Ragheb (view profile)

Hi

export_fig works perfectly for small figures when I use this command: "export_fig test.pdf". However, using the same command, Matlab crashes for large figures and it gives me this error:
Exception type: Bus Error (0xa) at pc=7fff887be082

Also, I tried export_fig test.eps, but it does not even work?

Many thanks
Ragheb

Comment only
16 Dec 2014 Ragheb

### Ragheb (view profile)

Hi

export_fig works perfectly for small figures when I use this command: "export_fig test.pdf". However, using the same command, Matlab crashes for large figures and it gives me this error:
Exception type: Bus Error (0xa) at pc=7fff887be082

Also, I tried export_fig test.eps, but it does not even work?

Many thanks
Ragheb

Comment only
10 Dec 2014 Ian Zammit

### Ian Zammit (view profile)

from my experience works perfectly! Is there a list of changes for the version uploaded 08/12/14? The one within export_fig and some other .m files seems not to be updated

08 Dec 2014 Iain

### Iain (view profile)

Hi Oliver,

Thanks for an excellent function!

I am using a current version of export_fig (today), OS X 10.10.1, ghostscript 9.15, and Matlab 2014b. All works fine when I set up a figure and run:

export_fig(fname,'-pdf',fh);

However, if I then run:

>> set(groot,'Units','normalized')

I now get:

>> export_fig(fname,'-pdf',fh);
Error using eps2pdf (line 107)
Error: /configurationerror in --setpagedevice--
Operand stack:
--nostringval-- (%%BoundingBox: 0 0 0 0) --dict:1/2(ro)(G)-- --nostringval--
--nostringval-- (%%BoundingBox: 0 0 0 0) 1 0 0 false --dict:1/1(L)--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2
%stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push
1951 1 3 %oparray_pop 1950 1 3 %oparray_pop --nostringval-- 1934 1 3
%oparray_pop 1820 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2
--nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
%ztokenexec_continue (scanner state) --nostringval-- --nostringval-- --nostringval--
--nostringval-- --nostringval-- --nostringval-- 1913 10 3 %oparray_pop
--nostringval-- --nostringval-- --dict:1/10(L)-- --nostringval-- 16 %dict_continue
Dictionary stack:
--dict:1189/1684(ro)(G)-- --dict:0/20(G)-- --dict:81/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 266
GPL Ghostscript 9.15: Unrecoverable error, exit code 1

Error in export_fig (line 442)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);

The output is now a blank PDF. Clearly, I can work around this by not invoking:

>> set(groot,'Units','normalized')

That said, it would be nice to have export_fig resilient to this setting.

cheers
Iain

08 Dec 2014 Jiri

### Jiri (view profile)

18 Nov 2014 Panayiotis Christodoulies

### Panayiotis Christodoulies (view profile)

Great tool!

07 Nov 2014 Steven

### Steven (view profile)

Hi Oliver. Sorry. I have not heard about GitHub before. Otherwise I would not bother you asking here.

I created an issue.

Thank you.
Steven

Comment only
06 Nov 2014 David Nolan

### David Nolan (view profile)

Great function and badly needed for HQ figures for publishing. You have my thanks Oliver.

06 Nov 2014 Valjean

### Valjean (view profile)

Sorry, never heard of GitHub. Now I see it at over there above the Download Zip button. Not familiar with it.

Comment only
05 Nov 2014 Oliver Woodford

### Oliver Woodford (view profile)

Philipp: There is absolutely no chance without an issue raised on GitHub.

Comment only
05 Nov 2014 Philipp Winter

### Philipp Winter (view profile)

Is there any chance that there will be a fix for the totally "jagged" lines all along a graph when exporting to either of those formats: png, eps, pdf, ... ??

The strange thing is: if I use saveas PNG, the Problem is not occuring. With export_fig (PNG) is occurs. So I suppose export_fig first creates a vector format and afterwards a PNG of it, which can explain that.

Anyway: I need MATLAB 2014b for some other features and ask myself if there is any chance to get this bug fixed?

Comment only
05 Nov 2014 Oliver Woodford

### Oliver Woodford (view profile)

Valjean, R2D2: For the 100th time (and beginning to wonder what is wrong with people), I do not address issues placed in the comments. If you want me to look at your problem, raise a GitHub issue and we can talk.

Comment only
05 Nov 2014 Valjean

### Valjean (view profile)

Update: export_fig works fine on the screen-sized figures when I remove the
'-transparent' argument.

Comment only
05 Nov 2014 Valjean

### Valjean (view profile)

I want to clarify my previous comment. The script worked for the normal-sized figures, but the one that it choked on was the size of the screen if that makes any difference or helps diagnose the problem.
I create the figure, then resize the figure using the following lines of code:
h=figure;
set(h, 'Position', get(0,'ScreenSize'));

The figures that did save successfully were those that had not been resized.
Any thoughts?

Comment only
05 Nov 2014 Valjean

### Valjean (view profile)

Thank you for this script, Oliver. I've been using it successfully for the past few years. However, I recently upgraded from MATLAB 2009 to 2012b, and I'm having nothing but problems. First, I had the same error that Derek got (posted 07 Jun 2013). So, I downloaded the latest version just now and re-ran. Now, I am getting the following error:

Array dimensions must match for binary array op.

Error in export_fig (line 283)
alpha = round(sum(B - A, 3)) / (255 * 3) + 1;

Error in SavePlotsFnc (line 3)

export_fig(strcat(dirname,'\',sn,fname,'.png'),'-png','-transparent',figh);

Comment only
04 Nov 2014 R2D2

### R2D2 (view profile)

I placed the wrong error message in the previous post. The message I get with GS 9.10 is:
Error using eps2pdf (line 107)
Error: /undefined in bdef
Operand stack:
dom --nostringval--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval--
2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false
1 %stopped_push 1900 1 3 %oparray_pop 1899 1 3 %oparray_pop
1883 1 3 %oparray_pop 1771 1 3 %oparray_pop --nostringval--
%errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval--
2 %stopped_push --nostringval--
Dictionary stack:
--dict:1177/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 64
GPL Ghostscript 9.10: Unrecoverable error, exit code 1

Comment only
04 Nov 2014 R2D2

### R2D2 (view profile)

@Oliver. Tried ghostscript 9.10 and 9.15. Neither worked. Currently getting an error message:
Error: File: ghostscript.m Line: 35 Column: 1
Function definitions are not permitted in this
context.

Comment only
04 Nov 2014 Oliver Woodford

### Oliver Woodford (view profile)

Steven: Sorry I have to repeat myself again. I don't know, and I won't look into it until you raise a GitHub issue. Thanks.

Comment only
04 Nov 2014 Steven

### Steven (view profile)

Thanks for the great function. Sorry I have to mention my question again.

Why does the function can not save figures, in log-log plot correctly, when the range is too small? (It prints the true value instead of 10^...)

Steven

Comment only
04 Nov 2014 Oliver Woodford

### Oliver Woodford (view profile)

R2D2: Unfortunately I can't fix bugs in either Yosemite or Ghostscript. However, if you install Ghostscript 9.10 from here:
http://pages.uoregon.edu/koch/Ghostscript-9.10.pkg
does that fix things for you?

Comment only
03 Nov 2014 R2D2

### R2D2 (view profile)

Please fix the bugs that prevent this package from working with Mac OS X Yosemite + Matlab R2014b!

Thanks.

Comment only
03 Nov 2014 Bob

### Bob (view profile)

update for mac users: I may have found the issue. If you have texshop installed make sure you are at version 3.44. I updated ghostscript separately and had problems, I updated texshop and voila, export_fig appears to work as before. Speculation: the texshop installer does something the separate ghostscript package didn’t.

Comment only
02 Nov 2014 Bob

### Bob (view profile)

Has anyone gotten pdf export to work on yosemite/2014b? I’m using Ghostscript 9.15. I would appreciate anything your working setup. Thanks.

Comment only
02 Nov 2014 Yuewu

### Yuewu (view profile)

01 Nov 2014 h1u1k1

### h1u1k1 (view profile)

As noted earlier, this really nice function does not work with matlab2014b on MacOS (Yosemite) 10.10.

01 Nov 2014 h1u1k1

### h1u1k1 (view profile)

31 Oct 2014 Indranil

### Indranil (view profile)

how can I use this one to save multiple files?

Comment only
31 Oct 2014 BERDIN

### BERDIN (view profile)

30 Oct 2014 Carl Wouters

### Carl Wouters (view profile)

Really nice !
Only one thing missing: SVG
Would love a real SVG creator.

27 Oct 2014 Martin

### Martin (view profile)

Thank you for this great function! Just one question: even when I use the -native option the final resolution of the image is different than the size of the matrix that has gone into the image. E.g., I have a 2048x2048 image, but after using export_fig (with the -native option) it returns a 2052x2052 image [currently using '-m4 -bmp -native' as options]. If I don't use that option it returns a 3176x3176 image.

Do you have a suggestion as how to get the exported image to match the size of the matrix?

22 Oct 2014 Oliver Woodford

### Oliver Woodford (view profile)

Michael, Adam: Surely one of you can (a) read and (b) file an issue on the github page, to which I will respond. I can't help you with what you've provided. Thanks.

Comment only
22 Oct 2014 Michael

### Michael (view profile)

With a code perfectly working on OS 10.9.5 and Matlab 2014a, I got the exact same issue than Adam, but on a OS X 10.10 (final release!) with Matlab 2014b and Ghostscript 9.15...

Error using eps2pdf (line 107)
Error: /undefined in definefont
Operand stack:
CMSY10 --dict:14/15(L)-- Font
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1
%stopped_push 1951 1 3 %oparray_pop 1950 1 3 %oparray_pop --nostringval-- 1934 1 3 %oparray_pop 1820 1 3 %oparray_pop --nostringval--
%errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- 1901 2 3 %oparray_pop
Dictionary stack:
--dict:1188/1684(ro)(G)-- --dict:0/20(G)-- --dict:121/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 71195
GPL Ghostscript 9.15: Unrecoverable error, exit code 1

Error in export_fig (line 435)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);

21 Oct 2014 Steven

### Steven (view profile)

The function is magnificent.
Except that sometimes for me a problem arises when exporting!

In loglog plot, the label ticks are not written correctly, I mean they should be something like 10^(2), but they are 100.

Strange is that this only happens for y-axis and x-axis is fine!

I looked it up a lot in the internet, but could not find the solution. I have not been able to resolve it by changing tickmode to manual or etc.

Any other solution?

Thanks!

Steven

20 Oct 2014 George

### George (view profile)

16 Oct 2014 Peter Pablo

16 Oct 2014 Eric

### Eric (view profile)

Thanks a lot for the great work

14 Oct 2014 Christian

### Christian (view profile)

I encountered a similar issue as described by Emma. However, it works fine for linewidths>0.75 pt, but for smaller linewidths the lines seem to be set to 0.75 pt when exporting, i.e. when exporting lines of 0.5 pt width (or any value<0.75), it will export them as 0.75 pt, when exporting lines with 1 pt width (or any value >0.75 pt) it exports them with the correct width.
The problem does not occur in R2014a.

Tremendously useful function. However, I seem to have issues getting it work in 2014b on Mac OS X Mavericks (10.9.5). Since upgrading I get the following error whenever I export to eps:

Error using eps2pdf (line 107)
Error: /typecheck in /findfont
Operand stack:
CMMI10
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval-- --nostringval--
--nostringval-- false 1 %stopped_push 1916 1 3 %oparray_pop
1915 1 3 %oparray_pop --nostringval-- 1899 1 3
%oparray_pop 1787 1 3 %oparray_pop --nostringval--
%errorexec_pop .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval-- 1868 1 3
%oparray_pop
Dictionary stack:
--dict:1184/1684(ro)(G)-- --dict:0/20(G)-- --dict:121/200(L)--
Current allocation mode is local
Last OS error: Invalid argument
Current file position is 90356
GPL Ghostscript 9.10: Unrecoverable error, exit code 1

Error in export_fig (line 435)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2,
options.quality);

It seems to be an issue with ghostscript, but any hints as to how to fix it would be gratefully received!

Thanks!

13 Oct 2014 Emma

### Emma (view profile)

I absolutely love this tool, but I have a problem using 2014b. The lines on my exported figures are really wide now. The exact same code run in 2014a is perfect, but the new linewidths are unusable.

11 Oct 2014 Fabian Schrumpf

### Fabian Schrumpf (view profile)

Oliver: I accidentally did not use the most recent release of your script. After updating, it works as great as before in 2014b as well. Thank you.

10 Oct 2014 Yisheng Xu

### Yisheng Xu (view profile)

It's a great tool. The only flaw that I found is the LineWidth and FontSize of exported vector image (pdf) is slighlty bigger than the sizes specified in MATLAB (e.g., LineWidth becomes 0.735pt and unadjustable; FontSize of 10pt becomes 10.29pt) Any way to fix it? Thanks!

09 Oct 2014 Oliver Woodford

### Oliver Woodford (view profile)

Fabian: R2014b works for me. If you have a reproducible error I suggest you provide me the code in an issue on github.

Comment only
09 Oct 2014 Fabian Schrumpf

### Fabian Schrumpf (view profile)

I love this function and use it almost daily to export Matlab figures to pdf and postprocess them in other programs.

However, in Matlab 2014b Mathworks introduced the new graph design and the export to pdf/eps is not possible anymore, giving the error:

Error using eps2pdf (line 100)
Error: /undefined in bdef
Operand stack:
dom --nostringval--

I would highly appreciate if this could be fixed to run with the most recent Matlab version.

09 Oct 2014 Fabian Schrumpf

### Fabian Schrumpf (view profile)

09 Oct 2014 Malte

### Malte (view profile)

Great job, thanks! However I am faced with the following problem... I used "patch" for plotting and the "FaceAlpha" property. After the export the background is black (*.png, transparent, opengl). Any ideas???

06 Oct 2014 ustc

### ustc (view profile)

it's very good!

01 Oct 2014 Micke Malmström

### Micke Malmström (view profile)

30 Sep 2014 Robert Richardson

### Robert Richardson (view profile)

30 Sep 2014 Robert Richardson

24 Sep 2014 M S

### M S (view profile)

Love this function. Transparency in .pdf/.eps would be *hugely* appreciated, I still use plot2svg when trying to save images with patch transparency.

22 Sep 2014 Fei yang

### Fei yang (view profile)

Pretty good!

19 Sep 2014 Ander Biguri

### Ander Biguri (view profile)

This fileexchange should DEFINITELY be added to matlab as a feature. Amazing.

19 Sep 2014 Tobias Benjamin Gram

### Tobias Benjamin Gram (view profile)

18 Sep 2014 Liang Haixiao

### Liang Haixiao (view profile)

17 Sep 2014 Juan Deaton

### Juan Deaton (view profile)

17 Sep 2014 mf0000

### mf0000 (view profile)

This looks as a function I might as well quickly fall in love with. However, I am in troubles with how to make it work. I do not find it so straightforward how to install Xpdf on mac, OS X. Can anyone help me with step-by-step instructions on proper installation commands in the terminal?

Comment only
05 Sep 2014 Karen

### Karen (view profile)

Selecting the location for the system version of ghostscript did not work for me. I am using matlab 2014a on a mac (10.9.4). My ghoscript installation is via MacPorts, and installs in /opt/local/bin/gs. My default shell is csh, not bash.

I was able to get the ghostscript.m script to work by changing the mac-specific 'export DYLIB...' commands (bash syntax) to 'setenv DYLIB....' (csh syntax).

I did not find an easy way to check what shell the user is using, but perhaps some checking for this could be added. Since the fix requiring the environment variable to be set has been around for about a year in your code, I suspect not many users have csh as their default shell, either under unix or OSX systems.

I have been using export_fig for several years, and am glad to have it back with my new laptop.

05 Sep 2014 Oliver Woodford

### Oliver Woodford (view profile)

Arnold: Try using imsc from my sc package. It doesn't use patch objects, but can still fill in NaNs with any colour you want.

Comment only
05 Sep 2014 arnold

### arnold (view profile)

I use imagescnan quite a bit. However, I can't export those figures as pdf since the white patches masking the nan areas are always dropped when using export_fig. I can't seemt to find a way to keep the patches. Exporting using standard pdf export works fine in this regard, yet it's very clumsy.... that's why export_fig is always first :)

Comment only

plot with transparency in the patches not rendering in pdf correctly (the patches are given a solid color). How can this be fixed?

11 Aug 2014 Haowen

### Haowen (view profile)

10 Aug 2014 arnold

### arnold (view profile)

Hi Oliver, still having problems exporting patches and lines or symbol.
I can use uistack or uistack2 from the file exchange here and get good looking results BUT, if I export PDF using export_fig the patch is always in front of everything else. Maybe you can look into that and fix it! thanks Arnold.

Comment only
01 Aug 2014 Mei June

### Mei June (view profile)

Is there a way to use this great tool in the editor's publish function?

So that pressing the publish button yields a report with images and graphs as specified with parameters in this export_fig tool?

01 Aug 2014 jianfeng zeng

### jianfeng zeng (view profile)

I don't know how to set the DPI and size of figure
outputted by export_fig. Could any friend tell me about it? thanks very much!!!

31 Jul 2014 Noah Levine-Small

### Noah Levine-Small (view profile)

Export_fig has been a life saver. Unfortunately, I now get the following error:
Error using eps2pdf (line 107)
Error: /undefined in bdef
Operand stack:
dom --nostringval--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval-- --nostringval--
--nostringval-- false 1 %stopped_push 1932 1 3
%oparray_pop 1931 1 3 %oparray_pop 1915 1 3
%oparray_pop 1803 1 3 %oparray_pop --nostringval--
%errorexec_pop .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1189/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
Current file position is 64
GPL Ghostscript 9.09: Unrecoverable error, exit code 1
Error in export_fig (line 424)
eps2pdf(tmp_nam, pdf_nam, 1, options.append,
options.colourspace==2, options.quality);

any ideas?

Comment only
29 Jul 2014 Junghwan

### Junghwan (view profile)

Many thanks to Oliver for the great code.
One issue that I encountered:
When exported in eps format, all my tweaks on the plot legend are reset to default.

18 Jul 2014 Baptiste

### Baptiste (view profile)

17 Jul 2014 Tristan

### Tristan (view profile)

Thanks for the great code, and the ghostscript error fix! it suddenly didn't print eps or pdf anymore, but now works beautifully again
..Afif: export_fig(gcf,'filename','-eps')

15 Jul 2014 Sven

### Sven (view profile)

Hello,

Thanks a lot for that beatiful code. Works quite good.
However, there is a bug: one cannot use the symbol "%" within the file name:

When I type: export_fig(f3, 'Post-Process Estimates - diff. weight (+5 +10 +15)kg, Amp 10','-pdf','-q0','-a1','-r160','-nocrop') % lowest quality, no anti-aliasing, reduced resolution

it creates a nice pdf.

However when I add the symbol "%" at the end of the name, that is: Amp 10% I get a strange error message:

>> export_fig(f3, 'Post-Process Estimates - diff. weight (+5 +10 +15)kg, Amp 10%','-pdf','-q0','-a1','-r160','-nocrop')
Error using eps2pdf (line 107)
**** Unable to open the initial device, quitting.

Error in export_fig (line 435)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);

A bug?

Comment only
14 Jul 2014 Afif

### Afif (view profile)

Can someone please provide an minimalist example of how to export and .eps image using 'export_fi'? I am having a really hard time using it. Thanks in advance.

Comment only
11 Jul 2014 Tobias Benjamin Gram

### Tobias Benjamin Gram (view profile)

After updating to R2014b, the crop function for PDF seems not to work properly. This is my test code:
--------------------------------------
x = -100:0.01:100;y = -3.*x.^2-3.*x+4;
figure,plot(x,y,'--')
xlabel('x-axis'),ylabel('y-axis'),title('title'),legend('function')
export_fig('fig1_q101_painters','-pdf','-q101','-painters');
export_fig('fig2_painters','-pdf','-painters');
export_fig('fig3_pdf','-pdf');
export_fig('fig4_nocrop','-pdf','-nocrop');
export_fig('fig5_png','-png');
export_fig('fig6_bmp','-bmp');
export_fig('fig7_jpg','-jpg');
----------------------------------------------
The png, bmp and jpg is being crop perfect.

Comment only
11 Jul 2014 Bennet Luck

### Bennet Luck (view profile)

Most used function at the moment, great!

07 Jul 2014 Preetham Aghalaya Manjunatha

### Preetham Aghalaya Manjunatha (view profile)

Extremely useful function!

07 Jul 2014 murat

### murat (view profile)

03 Jul 2014 Hugo Mendonça

### Hugo Mendonça (view profile)

02 Jul 2014 Morteza Shahpari

### Morteza Shahpari (view profile)

02 Jul 2014 Morteza Shahpari

### Morteza Shahpari (view profile)

01 Jul 2014 Dirk kok

### Dirk kok (view profile)

If you are writing documents which require matlab figures this is a must have program.

27 Jun 2014 Richard

### Richard (view profile)

First of all, this program is totally awesome. But... I'm having a problem with R2014b running on Windows 7. After creating a very simple plot, I get this error information.

Error: /undefined in bdef
Operand stack:
dom --nostringval--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1862 1 3 %oparray_pop 1861 1 3 %oparray_pop 1845 1 3 %oparray_pop 1739 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1153/1684(ro)(G)-- --dict:0/20(G)-- --dict:69/200(L)--
Current allocation mode is local
Current file position is 64
GPL Ghostscript 8.64: Unrecoverable error, exit code 1

I'm also confused as to why it's using Ghostscript 8.64, as I've installed 9.14 and changed 'path_ = user_string('ghostscript');' in ghostscript.m to 'path_ = user_string('C:\Program Files\gs\gs9.14\bin\gswin64c.exe');'.

27 Jun 2014 talha

### talha (view profile)

26 Jun 2014 Debejyo Chakraborty

### Debejyo Chakraborty (view profile)

Actually exports vector pdf, cropped accurately! Thanks for this. Saves me a ton of time.

26 Jun 2014 daniel

### daniel (view profile)

Wow, what a great tool! Saved me a lot of trouble, Thanks!!!!

26 Jun 2014 Hassan Naseri

### Hassan Naseri (view profile)

Great new version. Finally the problem with interactive plots, e.g., "impoint" or "impoly", has been resolved. :)

23 Jun 2014 Christoph Gugg

### Christoph Gugg (view profile)

great, now works with the prerelease of R2014b on OSX 10.9.3

16 Jun 2014 Jorge

### Jorge (view profile)

08 Jun 2014 Alexander

### Alexander (view profile)

06 Jun 2014 Yifan

### Yifan (view profile)

06 Jun 2014 Yifan

### Yifan (view profile)

06 Jun 2014 George

### George (view profile)

Exactly what I needed. It actually gave me an eureka experience in my work. Thank you so much.

06 Jun 2014 IRIN SAJAN

### IRIN SAJAN (view profile)

awesome...!!!!:)

30 May 2014 Seyed F Yousefian

### Seyed F Yousefian (view profile)

Awesome! This is exactly what I have been looking for.

24 May 2014 mitilma

### mitilma (view profile)

great! this saves my day, thank you!

23 May 2014 Wang

### Wang (view profile)

21 May 2014 Rashmil Dahanayake

### Rashmil Dahanayake (view profile)

Figured it out.
file_name=sprintf('plot_%d',x);
export_fig(fullfile(file_name),gcf, '-m2.5');

Comment only
21 May 2014 Rashmil Dahanayake

### Rashmil Dahanayake (view profile)

I'm try to use this script to automatically plot all columns saved in an array. Say if I have a 3x2000 matrix, I want to plot 3 raw vectors and save plot_1.png, plot_2.png and plot_3 png. Can I pass a string variable export_fig.

code:
% auto plotter
t=0:.001:2;
y1=2*sin(2*pi*t);
y3=2/3*sin(2*pi*3*t);
y5=2/5*sin(2*pi*5*t);
Y=[y1;y3;y5];
% real code begins here
n=size(Y,1);
for x=1:n;
taggy=sprintf('C=%d mF',x); % title
file_name= sprintf('plot_%d.png',x); % file name to be plot_x.png
plot(t, Y(1,:));title(taggy);
export_fig file_name -m2.5;close(gcf);
end

21 May 2014 yun

### yun (view profile)

19 May 2014 jACK bROUDY

### jACK bROUDY (view profile)

export_fig Exports figures nicely to a number of vector & bitmap formats.

16 May 2014 Ahmed

### Ahmed (view profile)

12 May 2014 Wesley Allen

### Wesley Allen (view profile)

08 May 2014 dijkbgf

### dijkbgf (view profile)

awesome!

01 May 2014 Cecilia

### Cecilia (view profile)

30 Apr 2014 fei YANG

### fei YANG (view profile)

29 Apr 2014 FF Lee

### FF Lee (view profile)

I must say that this is the best MATLAB code I ever use. It works even on my old version (7.0.4 R14) MATLAB. Many thanks to the author. :)

29 Apr 2014 FF Lee

### FF Lee (view profile)

29 Apr 2014 FF Lee

28 Apr 2014 Erik

### Erik (view profile)

Finally a comprehensive figure exporting tool for MATLAB. I gratefully use it to create hi-res vectors from my figures, which is something that is not easily done in a useful fashion.

28 Apr 2014 Erik

### Erik (view profile)

Finally a comprehensive figure exporting tool for MATLAB. I gratefully use it to create hi-res vectors from my figures, which is something that is not easily done in a useful fashion.

24 Apr 2014 Oliver Woodford

### Oliver Woodford (view profile)

I repeat, please email me bug reports rather than posting them here. Better still, fork the repository, fix the bug, and create a pull request.

Hassan: Your example worked as expected on my system.

Alvaro: Feel free to email me a minimal working example.

Comment only
24 Apr 2014 Hassan Naseri

### Hassan Naseri (view profile)

1. Thank you for the great tool which I use it for all my graphic exports.

2. A problem: If a plot contains an "impoint" or "impoly", or probably any of these interactive objects from image processing toolbox, the output of export_fig simply doesn't show them. The problem happens only when exporting an axes not the whole figure. I would very much appreciate any suggestion?

figure()
handle = subplot(1,2,1);
impoly(handle, [1 1; 2 2; 1 2])
export_fig('test.pdf', '-pdf', '-transparent', handle)

24 Apr 2014 Alvaro

### Alvaro (view profile)

Great tool, thanks for it !
I'm having the following error passing uipanel to export_fig
The name 'OuterPosition' is not an accessible property for an instance of class 'uipanel'. (im using matlab 8.1)

23 Apr 2014 Matt

### Matt (view profile)

21 Apr 2014 Aidan

18 Apr 2014 Quan

### Quan (view profile)

09 Apr 2014 Samuel Macedo

### Samuel Macedo (view profile)

03 Apr 2014 Oliver Woodford

### Oliver Woodford (view profile)

Jo: Many thanks for the bug report. However, I do ask (in the description above) that people email me bug reports, rather than post them here.

Comment only
03 Apr 2014 Jo

### Jo (view profile)

First of all: great tool! I'm using it a lot.
Second: Matlab FileExchange Commenting is driving me nutts :-) (should've peeked into the previous comment)
Third: (main reason for my post) I encountered a tiny bug in the script, appearing as follows:
1. Create a figure
2. Create multiple axes inside
3. Draw imagesc in each axis
4. Disable axis labelling (axis off)
5. Draw e.g. a coloured rectangle in each image
=> The export will show the rectangle black in all but the first axis

Minimal example:

figure;
set(gcf,'Position',[0 0 1000 500]);
axes('position',[0.0 0.0 0.5 1]);
imagesc(rand(24,24));
axis off
rectangle('position',[8 8 8 8],'EdgeColor','r','LineWidth',2);
axes('position',[0.5 0.0 0.5 1]);
imagesc(rand(24,24));
axis off
rectangle('position',[8 8 8 8],'EdgeColor','r','LineWidth',2);
colormap gray
export_fig('tmp.pdf','-pdf');

Best wishes and thanks in advance for any hints or clues!

Comment only
03 Apr 2014 Jo

### Jo (view profile)

Arg, this commenting interface in FileExchange is driving me nutts... forgot to remove a .*m in both imagesc... sry for that :)

Comment only
03 Apr 2014 Jo

03 Apr 2014 Jo

### Jo (view profile)

01 Apr 2014 Martin

### Martin (view profile)

30 Mar 2014 Pooya89

### Pooya89 (view profile)

25 Mar 2014 Aaron True

### Aaron True (view profile)

Sorry for the multiple posts, apparently I can't rate it then comment without it automatically submitting my rating.
Anyways, love it so far, thank you!

I'm trying to resolve 2 odd issues. First, the negative signs on my axes tick labels show up as empty boxes when I open the pdf in Adobe Reader, which makes me think there is a missing font package etc. in my Adobe install; however, when I open the pdf in Ghostscript there is no symbol at all (minus sign or empty box), just the number on each axis tick. I'm using Adobe Reader XI which came installed on a new Dell PC (< 6 mos. old), and I just downloaded Ghostscript 9.10 today.

Second issue is that when I export as a png or tiff the code seems to shift text boxes around; i.e. my axis labels and an additional text box I added to the figure are in different locations than I explicitly set in the code and how they appear in the MATLAB figure (R2011a Student Version).

24 Mar 2014 Aaron True

### Aaron True (view profile)

23 Mar 2014 Jesper

### Jesper (view profile)

18 Mar 2014 maryam

12 Mar 2014 She

### She (view profile)

Solve my problem puzzled me for a long time, because I can't print *.jpeg files as the figures, and I used to copy *.fig files to another Windows computer to finish printing wanted picutres.
When I get this function, Matlab under Linux is becoming more amazing!

Thank you very much!

06 Mar 2014 Sid

### Sid (view profile)

24 Feb 2014 Manuel

### Manuel (view profile)

18 Feb 2014 Robert McHugh

### Robert McHugh (view profile)

13 Feb 2014 Austin

### Austin (view profile)

The output is beautiful, thank you very much for taking the time to make this.

10 Feb 2014 Sean

### Sean (view profile)

03 Feb 2014 Chuntao Dan

### Chuntao Dan (view profile)

Must-have for everyone! Superb figure quality! For Mac users, ghostscript can be installed as a component of the MacTeX-Additions package at http://tug.org/mactex/morepackages.html.

03 Feb 2014 Jamie Guggenheim

### Jamie Guggenheim (view profile)

03 Feb 2014 Alberto González Olmos

### Alberto González Olmos (view profile)

01 Feb 2014 ANAND SARIT

### ANAND SARIT (view profile)

pdftops.exe is not running on my system. i have a windows 8 operating system... someone please help..

Comment only
23 Jan 2014 Lars

### Lars (view profile)

This is a great function!
After changing to another linux mint 15 (MATE) from Fedora 18 I get the error message bellow. Do anyone of you have an idea of how to fix it? I tried the fix of Jannik from June 26 2013 without any luck...

Error using eps2pdf (line 107)
Error: /undefined in /findfont
Operand stack:
120 Helvetica ISOLatin1Encoding Helvetica Helvetica
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
--nostringval-- --nostringval-- false 1 %stopped_push 1916 1 3 %oparray_pop 1915 1 3 %oparray_pop
--nostringval-- 1899 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2
--nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- 1868
5 5 %oparray_pop
Dictionary stack:
--dict:1179/1684(ro)(G)-- --dict:0/20(G)-- --dict:82/200(L)-- --dict:97/160(L)-- --dict:8/95(L)--
Current allocation mode is local
Current file position is 7052
GPL Ghostscript 9.07: Unrecoverable error, exit code 1

Error in export_fig (line 406)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);

Comment only
23 Jan 2014 Lars

### Lars (view profile)

20 Jan 2014 Joris Kampman

### Joris Kampman (view profile)

After having some troubles in Linux Matlab to create nice figures for Libreoffice, this tooling works perfectly!

thumbs up!

15 Jan 2014 Oliver Woodford

### Oliver Woodford (view profile)

Jonne: There is no known issue with thick lines. For example,
>> plot(rand(3), 'LineWidth', 4);
>> export_fig test -png -pdf
works as expected on my PC.

Comment only
15 Jan 2014 Jonne

### Jonne (view profile)

Thank you for this function. I use it alot.

Currently I am trying to use it for an plot which contains line plots with 'LineWidth'> 2. The problem is that 'export_fig' won't export lines with fatter lines.

I am wondering if this is a known problem and if there are any solutions to that?

Comment only
14 Jan 2014 Khoa Tran

### Khoa Tran (view profile)

I use this script in conjunction with your files to produce graph for journal paper. Excellent work, thank you!

%% Resize graph
w = 0.5;h = 0.5; % this is good for double column format
f=gcf;undock(f)
w=round(w*1050);h=round(h*500);
size=[0 0 w h];
set(f,'Units','pixels','Position',size);

%% Printing
r=300;
[name, path] = uiputfile({'*.pdf','PDF';'*.eps','Vector based .eps';'*.jpg;*.tif;*.png;*.gif','All Image Files';'*.*','All Files' },'Save Image','/Users/Eric/Dropbox/Reports/');
export_fig(fullfile(path,name),f,'-a1',['-r',num2str(r)]);%, '-grey','-nocrop'

14 Jan 2014 Carl Esben Poulsen

### Carl Esben Poulsen (view profile)

Excellent work!

09 Jan 2014 Oliver Woodford

### Oliver Woodford (view profile)

Edison: Set the figure width to 17.3cm, and set the output dpi using the -r300 option in the call to export_fig. If that figure is still too large for your screen, then halve the figure size and double the resolution. If you want the tiff width to say 17.3cm in this case then output the bitmap as an argument from export_fig, and save it yourself using imwrite (setting the 'Resolution' option to 300).

Comment only
09 Jan 2014 Edison

### Edison (view profile)

An essential addition to MATLAB, they should include this as standard in future releases. Great.

One question: does export_fig always use the dimensions of the onscreen figure as a guide? For example, I want to export my figure as a TIFF at 300dpi, with a width of 17.3cm. This equates to an image 2049 pixels wide, and this will not fit on my screen. Thanks for the help.

02 Jan 2014 Emma

### Emma (view profile)

Thank you thank you thank you!!!

24 Dec 2013 Saulo Meirelles

### Saulo Meirelles (view profile)

20 Dec 2013 Zielinski Christelle

### Zielinski Christelle (view profile)

14 Dec 2013 Michael

### Michael (view profile)

Thank you for a great program. It perfectly reproduces complex 2D figures that I could not accurately reproduce using any other method.

12 Dec 2013 Ian

### Ian (view profile)

11 Dec 2013 Remco Huizenga

### Remco Huizenga (view profile)

First of all: many thanks for an amazing tool and all the work you have put in it. It is very much appreciated.

I do have, however, a small question:
I'm trying to export a plot of a uniform distribution between, say, a and b, to the .png format. This obviously means that the function is zero for values lower than a and higher than b. In that case, the function gets overlapped by the axis and is therefore not visible in the exported .png. It is in the MatLab figure. Am I missing something or is there a fix for this? Thanks in advance

Comment only
10 Dec 2013 Jaap de Vries

### Jaap de Vries (view profile)

I got it fixed, code works great!!
When I set the background transparent the part inside the graph remains white, while the sections outside the axis become transparent, any tips?

Regards,

Jaap

10 Dec 2013 Oliver Woodford

### Oliver Woodford (view profile)

Jaap: sounds like you're shadowing MATLAB's print() with another function of the same name.

Comment only
10 Dec 2013 Jaap de Vries

### Jaap de Vries (view profile)

Error using print
Too many input arguments.

Comment only
10 Dec 2013 Jaap de Vries

### Jaap de Vries (view profile)

I am really looking forward to using this code but I keep getting the following error...

export_fig 'test.jpg'

Error in print2array (line 140)
print(fig, renderer, res_str, '-dtiff', tmp_nam);

Any help would be apreciated.

Regards, Jaap

Comment only
07 Dec 2013 Junghwan

### Junghwan (view profile)

01 Dec 2013 Werner

### Werner (view profile)

you just saved my thesis…

29 Nov 2013 pr

24 Nov 2013 zhu

### zhu (view profile)

good

22 Nov 2013 LDELBENE

### LDELBENE (view profile)

Amazing, but it does not work with transparent surf plots for eps or pdf files.

20 Nov 2013 Arttu Modig

### Arttu Modig (view profile)

Thanks a lot Johannes for the Mac OSX dylib fix!

19 Nov 2013 Zhiyong

### Zhiyong (view profile)

19 Nov 2013 BERDIN

### BERDIN (view profile)

29 Oct 2013 J.R.! Menzinger

### J.R.! Menzinger (view profile)

A very useful tool, thanks.

28 Oct 2013 Agnethe

### Agnethe (view profile)

24 Oct 2013 Johannes

### Johannes (view profile)

Bugfix for Mac: https://gist.github.com/ahojnnes/7132839

23 Oct 2013 Matlab2010

### Matlab2010 (view profile)

Long time user of export_fig here. great function -- thanks!

New machine today. 64 bit Windows 8.1, MATLAB 2013B. Latest installation of Ghoscript (9.1) put onto the machine.

A problem occurs with the function ghostscript.m

On executing the code in this m file: check_gs_path(path) a zero is returned.

This causes the software to ask where the location of the ghostscript executable is -- i point it to the correct dir and it fails to find it.

Thus I have had to hard code in

path = 'C:\Program Files\gs\gs9.10\bin\gswin64c.exe';

before check_gs_path(path) is called, which works.

What's going on?

Thanks

22 Oct 2013 Alexander

### Alexander (view profile)

Many thanks. Before find this I was wasting so much time copying the images and then trimming

21 Oct 2013 Antoine Liutkus

### Antoine Liutkus (view profile)

great, did it whereas matlab could not =) thanks

16 Oct 2013 Bill

### Bill (view profile)

Hi, Oliver,
How can I use it to export .emf files? Is it possible ?

13 Oct 2013 Marco

### Marco (view profile)

I used export_fig in a GUI. Anyone who wishes to create a button that saves specific figures to specific locations on their PC, feel free to use the code below (where PLOTTAG is the plot's tag in plot properties):

[file,path] = uiputfile({'*.eps';'*.pdf';'*.png';'*.jpg'},'Save Figure As');

if file ~= 0
%Gets the size of the file name
[empty,filechar]=size(file);
%Deletes the file type from teh end of the file name and stores it
filetype(3) = file(filechar);
filetype(2) = file(filechar-1);
filetype(1) = file(filechar-2);
file(filechar) = [];
file(filechar-1) = [];
file(filechar-2) = [];
file(filechar-3) = [];

%Runs the export_fig command with the path and file name, along with the
%filetype
export_fig(findobj('Tag','PLOTTAG'),[path,file],['-',filetype]);

%Message box
h = msgbox({'Done!';'';...
['The file ',file,'.',filetype,' can be found in:'];path},...
'Save Figure File','none','modal');
elseif isempty(file) == 0
h = msgbox('Not saved.',...
'Save Figure File','none','modal');
end

07 Oct 2013 Will Grant

### Will Grant (view profile)

I am using figures with contour lines, thus my figures are: axes > contourgroup > patch objects.

In my exported images, I was getting the axes with all text label objects but no lines.

I had to change line 97 in isolate_axes.m from allchild() to findall() as a fix. I don't know if this breaks anything but it shouldn't as findall just finds all objects lower in the hierarchy than the one passed in, which is the axes handle in this case. I was losing the patch objects that make up the figure as allchild() was only returning the objects at the first level under the axes.

Will

Comment only
06 Oct 2013 DQ Zhang

### DQ Zhang (view profile)

Great!

BTW, how to set the resolution?

02 Oct 2013 Dun Kirk

### Dun Kirk (view profile)

I got this warning using export_fig(axes_handle):

Warning: Callback for uicontrol of style radiobutton will be overwritten when added to a UIBUTTONGROUP.
Use the SelectionChangeFcn property on the button group instead.
In copyfig at 25
In isolate_axes at 52
In export_fig at 181

Comment only
30 Sep 2013 Peter

### Peter (view profile)

Hi Oliver and all,

I used your script quite a lot to make png's. For some reason I get different output ratios, depending on the x and ylabel? (Which is driving me crazy...) I am not sure what I am doing wrong. The effect does not appear with the Matlab print function... but the png is as expected not as nice. Anyone an idea?

Comment only
30 Sep 2013 Jack

### Jack (view profile)

19 Sep 2013 Sebastian

18 Sep 2013 Leah

### Leah (view profile)

Worked perfect! Very easy to use. Make sure you close the pdf file you are writing to or you will get a GS error.

17 Sep 2013 Oliver Woodford

### Oliver Woodford (view profile)

Sanka: I suspect this has nothing to do with export_fig and everything to do with the software you're using to view the eps file.

Lennart: You can set the default background color for MATLAB figures, outside of export_fig. There is no 'transparent' option, but the help text does mention a '-transparent' option.

Comment only
17 Sep 2013 Lennart

### Lennart (view profile)

Great tool!
However, I wish to export to a pdf with a white background. Then I have to do 'set(gcf, 'Color', 'w');' every time. Is there a permanent setting or a parameter that can be set?
This does not seem to work: export_fig(fig_handle,'figure.pdf', 'transparent' )

17 Sep 2013 dong

### dong (view profile)

16 Sep 2013 Sanka

### Sanka (view profile)

Hi Oliver,

Great file, really should come as standard with MATLAB! Just one issue I am having when exporting to .eps format. All text in the figure (axes numbers and legend text) are being outputted in bold. This is not the case for every other file format such as pdf or tiff, where the figure appears exactly as it does on screen. Any idea why this is happening specifically to eps??

Thanks

12 Sep 2013 Fernando

### Fernando (view profile)

12 Sep 2013 James

### James (view profile)

I just started using this. I mostly only use HG2.
I get the following error when I try to run your example code for creating a .pdf, with HG2.

B = randn(ceil(size(A, 1)/6), ceil(size(A, 2)/6), 3) * 0.1;
B = cat(3, kron(B(:,:,1), ones(6)), kron(B(:,:,2), ones(6)), kron(B(:,:,3), ones(6)));
B = A + B(1:size(A, 1),1:size(A, 2),:);
imshow(B)
>> export_fig test.pdf
Error using eps2pdf (line 107)
Error: /undefined in bdef
Operand stack:
dom --nostringval--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push
--nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1932 1 3
%oparray_pop 1931 1 3 %oparray_pop 1915 1 3 %oparray_pop 1803 1 3 %oparray_pop
--nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2
%stopped_push --nostringval--
Dictionary stack:
--dict:1190/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
Current file position is 64
GPL Ghostscript 9.10: Unrecoverable error, exit code 1

Error in export_fig (line 431)
eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);

I do not get this error when I am not using HG2, but it would take awhile for me to convert everything back from HG2. Do you have any ideas how to fix the problem?

(Note, laprint also doesn't seem to work with HG2. So, this could be a problem with HG2 and not have anything to do with your files.)

Comment only
09 Sep 2013 Oliver Woodford

### Oliver Woodford (view profile)

David: The grid lines are the width specified (by setting the axes line width), but the segments are shorter (there's no option to change this). Try using thicker grid lines.

Comment only
09 Sep 2013 David

### David (view profile)

Excellent work, many thanks! Question though, I'm finding that when printing, the only objects not reproduced "as shown" are the gridlines. The output gridlines are much fainter and barely visible. Any way to address this? Thanks!

09 Sep 2013 Manuel

### Manuel (view profile)

08 Sep 2013 Mikolaj Magnuski

### Mikolaj Magnuski (view profile)

07 Sep 2013 Mikolaj Magnuski

### Mikolaj Magnuski (view profile)

max, does it work if you try:

export_fig('/Users/maxnorris/Desktop/test.png',H);
or:
export_fig('/Users/maxnorris/Desktop/test','-png',H);

?

05 Sep 2013 max

### max (view profile)

Oliver,

I have just downloaded your code and it seems to be receiving great reviews. I can't seem to get it to work though... All i want to do is to save a figure window to my desktop.

I have a figure that is displaying an image. How would I use export_fig to save this figure under the name 'test' in png format?

This is what I am seeing: (H is set to be the figure handle)

>>export_fig('/Users/maxnorris/Desktop/test','png',H)
Error using print
Too many input arguments.

Error in print2array (line 140)
print(fig, renderer, res_str, '-dtiff', tmp_nam);

Error in export_fig (line 334)
[A, tcol] = print2array(fig, magnify, renderer);

Comment only
30 Aug 2013 Jeff

### Jeff (view profile)

Awesome work!! It is so much better than the Matlab default export system. Thank you very much for creating this great function for us.

23 Aug 2013 Kirsten

### Kirsten (view profile)

23 Aug 2013 Ozan Oguz

### Ozan Oguz (view profile)

I said I am using "uicomponent" for my GUI.

Actually, I am using " "GUI Layout Toolbox".

I am sorry for the misinforming.

Comment only
23 Aug 2013 Ozan Oguz

### Ozan Oguz (view profile)

I realised something:

I am using "uicomponent" for my GUI.
After giving "print" command (export_fig),my GUI changes.

What changes exactly?

1) All "uiextras.Empty" objects seem to vanish.

2) Legend in the axes becomes uneditable.

For now, this is what I observed.

Comment only
21 Aug 2013 Ozan Oguz

### Ozan Oguz (view profile)

This seems to be a great app, thx!

I have a question/problem:

I designed a GUI using uicomponent.m from file exchange. Left part is for controls, right part is for axes.

When I try to export the image of this axes, two different things happen for bitmap and vector formats. 1) For pdf, it gives me only the axes, and this is what I want, but 2) For png or jpg, it also gives me the empty area behind the control buttons on the left side of the axes.

I want a bitmap image with only the axes. Nothing more.

Can you help me, please, Oliver?

18 Aug 2013 WurmD

### WurmD (view profile)

Hi Oliver,
Let me add my voiceto the chorus: "Fantastic work!" :)

Now, I notice one thing you change is the grid lines to "- Improved line and grid line styles"
Which in my plot have been "No grid lines"

It would be nice to have the option of keeping the grid lines as shown, and keep your "Improved line and grid lines" as default

I looked into the code but couldn't figure where you're not adding the grid lines to the pdf

Will you create such an option (keep grid lines)? Will you tell me how?

Cheers!

15 Aug 2013 Isabella Osetinsky-Tzidaki

### Isabella Osetinsky-Tzidaki (view profile)

Wonderful performance with fast help from Oliver as if online talk! Save memory and run-time with '-a1' option while keeping quality as plotted, applying it as follows:
set(gcf,'color','w')
export_fig(filename,'-png','-a1','-nocrop')

15 Aug 2013 Oliver Woodford

### Oliver Woodford (view profile)

Tim: You're missing the -nocrop option.

Comment only
14 Aug 2013 Tim Garrett

### Tim Garrett (view profile)

Terrific function, but I am unclear on one thing. I wish to create a little booklet of figures where the page size and axis locations are precisely defined. e.g.
h = figure;
set(h,'units','inches','position',[0 0 8.5 11]);

plot(x,y);
set(gca,'Position',[0.2, 0.2, 0.6, 0.6];

Using 'print', my printed figure is placed exactly where I want within the page I want (albeit with stupid matlab problems). With 'export_fig' however, the output is *only* of the figure. The figure is not within a page.

What am I missing?

Thanks.

14 Aug 2013 Edgar Goederer

12 Aug 2013 Ivo

### Ivo (view profile)

finally... Fantastic, thanks!

06 Aug 2013 Alex R.

### Alex R. (view profile)

Great package. You can safely detect Ghostscript under Windows by reading the registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Artifex\GPL Ghostscript" (if 64bit) or "HKEY_LOCAL_MACHINE\SOFTWARE\Artifex\GPL Ghostscript" (if 32bit).

Use Matlab's winqueryreg() function or execute "reg" via system() to read the Windows registry.

Keep up the good work!

06 Aug 2013 Yuanwei

### Yuanwei (view profile)

Great tool. Exactly what I am looking for.

Q: when I export 1080p pic, it gives me a 1921x1081 pic in the saved jpeg. Any thought? Thanks

06 Aug 2013 Koen

### Koen (view profile)

powerful and easy to use. Png output is fine for transparent patches if you set the resolution at a decent level.

25 Jul 2013 Tomasz

### Tomasz (view profile)

25 Jul 2013 Andrew Bazyk

### Andrew Bazyk (view profile)

23 Jul 2013 Ali Abolfathi

### Ali Abolfathi (view profile)

11 Jul 2013 George

### George (view profile)

Dear Oliver,
thank you for this helpful function. In general, it workds fine. But when there are more than one font types are not in the matlab_fonts list, the function will give error :
Error in print2eps (line 97)
font_swap{3,a} = fonts{font_swap{1,end}(1)};

it seems that the equation should be:
font_swap{3,a} = fonts{font_swap{1,a}(1)};

BTW, do you know how to use font types which are not in matlab_fonts list, e.x. Garamond, Palatino Linotype?

thank you.
George

08 Jul 2013 Oliver Woodford

### Oliver Woodford (view profile)

Igor: You cannot specify the screen resolution in a call to export_fig. However, you can specify your figure size in units that are independent of pixel pitch, such as 'cm'. I suggest you try that.

Comment only
08 Jul 2013 Igor

### Igor (view profile)

Great script.
A question: how can I specify screen resolution while saving figure as .eps?
At the moment, the use of print2eps for the same figure gives different results (different scales) on computers with different screen resolutions (Matlab 2012a x64, Win7 x64 on both of them).

03 Jul 2013 luke

### luke (view profile)

03 Jul 2013 Shicai Yang

27 Jun 2013 Sam

### Sam (view profile)

Jannik fix works for the Issue I had (reported on 18 Jun 2013) using ubuntu 13.04 running Matlab R2012b.

Thanks Jannik. Really helped me out.

Comment only
26 Jun 2013 Jannik

### Jannik (view profile)

I also get a ghostscript error:

Error: /undefined in --definefont--
Operand stack:
mwa_cmmi10 --dict:11/20(L)-- Font definefont --dict:30/32(L)-- unknownerror
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2
%stopped_push --nostringval-- --nostringval-- --nostringval-- false 1
%stopped_push 1900 1 3 %oparray_pop 1899 1 3 %oparray_pop --nostringval--
1883 1 3 %oparray_pop 1771 1 3 %oparray_pop --nostringval--
%errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2
%stopped_push --nostringval-- 1762 2 3 %oparray_pop --nostringval--
--nostringval-- 1850 2 4 %oparray_pop --nostringval--
Dictionary stack:
--dict:1173/1684(ro)(G)-- --dict:0/20(G)-- --dict:82/200(L)--
--dict:1173/1684(ro)(G)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.07: Unrecoverable error, exit code 1

when using export_fig with Matlab 2013a and ArchLinux.
I solved this issue by clearing the LD_LIBRARY_PATH enviroment variable before executing gs by replacing

system(sprintf('"%s" %s', gs_path, cmd));

with

system(sprintf('export LD_LIBRARY_PATH=""; "%s" %s', gs_path, cmd));

in the ghostscript.m file. Maybe this will help in case of other ghostscript issues as well.

Comment only
24 Jun 2013 Sanka

### Sanka (view profile)

Brilliant script. Some much time is saved by avoiding the post-processing I used to do to get publication quality figures/images.

18 Jun 2013 Sam

### Sam (view profile)

Great script but I updated my linux machine and now I am getting the following error. Any Ideas??

Error: /undefined in /findfont
Operand stack:
120 Helvetica ISOLatin1Encoding Helvetica Helvetica
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1916 1 3 %oparray_pop 1915 1 3 %oparray_pop --nostringval-- 1899 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- 1868 5 5 %oparray_pop
Dictionary stack:
--dict:1180/1684(ro)(G)-- --dict:0/20(G)-- --dict:82/200(L)-- --dict:97/160(L)-- --dict:9/85(L)--
Current allocation mode is local
Current file position is 10662
GPL Ghostscript 9.07: Unrecoverable error, exit code 1

Error in print2array (line 95)

Error in export_fig (line 327)
[A tcol] = print2array(fig, magnify, renderer);

14 Jun 2013 Oliver Woodford

### Oliver Woodford (view profile)

Nicky: That's difficult to fix in export_fig. However, a workaround is to draw the grid lines or the axis bounding box manually to be able to get the desired ordering.

Comment only
14 Jun 2013 Nicky

### Nicky (view profile)

I want to export a figure to a .png and I want my linetypes and gridlines to be scaled correctly, so I've got to use the 'painters' renderer. The axis border ('box') is exported under the plot which means it gets covered by the plotted points. This does not happen with the default renderer.
If I change the axes layer to 'top' then the border comes to the top but so do the gridlines. Is there a way of having only the axes border at the top but not the gridlines?

Thanks for the script Oliver... been using it for a long time now and it fills a big gap in MATLAB.

Comment only
13 Jun 2013 xg

### xg (view profile)

Very useful

13 Jun 2013 Oliver Woodford

### Oliver Woodford (view profile)

m_user: You can export a particular axes in a figure just by passing in a handle, but there is no support for rendering just part of an axes - I do not intend to implement this either. I suggest you use the newsgroup or Answers to find out the many other ways in which you might achieve what you want.

Comment only
12 Jun 2013 m_user

### m_user (view profile)

Hi Oliver, "short" question: I built a GUI with a handles.axes in which a greyscale image is in the background and a colored, semitransparent image is in the foreground. Now I want to save this overlayed image but I have no variable which "points" to that overlay (so I can't write export_fig Test.fig). Is there another way (e.g. write export_fig gca..) to reference on the handles.axes? thanks in advance..

Comment only
09 Jun 2013 Anthi

### Anthi (view profile)

Thanks Oliver.i am a beginner at programming.your function is great.

Comment only
07 Jun 2013 Oliver Woodford

### Oliver Woodford (view profile)

Derek: The current version fixes this.

Anthi: In the example export_fig('C:/Users/Me/Documents/figures/myfig'), "myfig" IS the name.

Comment only
07 Jun 2013 Derek

### Derek (view profile)

After upgrading to 2013a, I get an error when using export_fig to save a .png with a transparent background. It works fine in 2012a. Perhaps Matlab changed something about writepng in 2013a? Has anyone found a work around for this? Is there an updated version of export_fig that can save a .png with a transparent background in 2013a?

export_fig CouplingEfficiency.png -transparent -native
Error using writepng (line 78)
Argument 'alpha' failed validation with error:
Expected input to be one of these types:

double, uint8, uint16

Error in imwrite (line 473)
feval(fmt_s.write, data, map, filename, paramPairs{:});

Error in export_fig (line 281)
imwrite(A, [options.name '.png'], 'Alpha', alpha, 'ResolutionUnit', 'meter', 'XResolution',
res, 'YResolution', res);

Comment only
04 Jun 2013 Andriy Nych

### Andriy Nych (view profile)

04 Jun 2013 Daniela Soto

### Daniela Soto (view profile)

03 Jun 2013 Anthi

### Anthi (view profile)

Great functions!Thanks Oliver.
i have a question.How can i export to a specific directory with a specific name?

For a name :
>> export_fig Alex

For a directory:

>>export_fig('C:/Users/Me/Documents/figures/myfig')

but how can i combine them?

30 May 2013 Ian

### Ian (view profile)

30 May 2013 kamel

### kamel (view profile)

22 May 2013 François

### François (view profile)

Awesome script! Works perfectly under Windows, but I have trouble to make it work with my Linux installation.
Here is the error returned:

Error using eps2pdf (line 107)
gs: /usr/local/share/matlab/R2013a/bin/glnxa64/libtiff.so.5: no version information available (required by /usr/lib/libgs.so.9)
Error: /undefined in /findfont
Operand stack:
96 Helvetica ISOLatin1Encoding Helvetica Helvetica
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval--
--nostringval-- false 1 %stopped_push 1916 1 3 %oparray_pop 1915 1 3 %oparray_pop --nostringval-- 1899 1 3
%oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval--
--nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- 1868 5 5 %oparray_pop
Dictionary stack:
--dict:1179/1684(ro)(G)-- --dict:0/20(G)-- --dict:82/200(L)-- --dict:97/160(L)-- --dict:8/89(L)--
Current allocation mode is local
Current file position is 7119
GPL Ghostscript 9.07: Unrecoverable error, exit code 1

What is happening?

16 May 2013 Iman Ansari

### Iman Ansari (view profile)

11 May 2013 Oliver Woodford

### Oliver Woodford (view profile)

arnold: I didn't. Please don't take my suggestion the wrong way :). Try ConvertPlot4Publication.

Comment only
10 May 2013 arnold

### arnold (view profile)

Please don't get it the wrong way :)
I'll create a script of my own combining it with 'fig' for instance.
I only meant well, your script is great as it is ;)

Comment only
10 May 2013 Oliver Woodford

### Oliver Woodford (view profile)

arnold: The goal of export_fig is to export what is on screen. By all means write a script that makes your figure the right size, have the correct line widths, fonts, etc., then calls export_fig with the correct resolution. Or use one of the several submissions that already do this.

Comment only
10 May 2013 arnold

### arnold (view profile)

Hi,
I've got another proposition: rescale figure

To make 'export_fig' even more useful for publications it'd be awesome if you added the possibility to rescale the figure to a certain size.
example:

export_fig 'test.png' -w5 -h4 -r300

This would set the width to 5" and the height to 4" and then export at 300dpi.
For us non-americans it'd be great if you added size in metric units [cm] as well.

export_fig 'test.png' -wm5 -hm4 -r300

would then set the width to 5cm etc.

Comment only
08 May 2013 Falko Schindler

### Falko Schindler (view profile)

07 May 2013 Siyi Deng

### Siyi Deng (view profile)

IMO this should be built in into matlab releases.

04 May 2013 Iman Ansari

### Iman Ansari (view profile)

02 May 2013 Mingyao

### Mingyao (view profile)

Hello Oliver, I have noticed that cropping does not always happen for a figure with an array of, say, 5 by 5 subplots. It leaves the margins on the left, top, and right sides of a figure as they are while cropping out the bottom margin. How should I address this? Thanks a lot!

Comment only
19 Apr 2013 Greg

### Greg (view profile)

Great set of functions! May I propose an improvement of "eps2pdf" ?
I had to add this at line 54 (after crop cmd) in order to modify the final pdf orientation:

options = [options ' -dEPSCrop -c "<</Orientation 3>> setpagedevice"'];

Maybe the orientation could be given as an input argument?

For information:
* -c "<</Orientation 3>> setpagedevice" -- sets landscape orientation;
* -c "<</Orientation 0>> setpagedevice" -- sets portrait orientation;
* -c "<</Orientation 2>> setpagedevice" -- sets upside down orientation;
* -c "<</Orientation 1>> setpagedevice" -- sets seascape orientation.

Comment only
19 Apr 2013 Greg

19 Apr 2013 Greg

### Greg (view profile)

12 Apr 2013 arnold

### arnold (view profile)

latex formulas are distorted/upscaled and displayed incorrectly, but they appear right in the actual figure.

example:
======================
text(xpos,ypos,'$$\frac{\alpha}{\sqrt{2}}\cdot', num2str(1e5),'s$$','HorizontalAlignment', 'left', 'BackgroundColor', [.7 .9 .7], 'interpreter','latex');
======================
it looks right in the figure yet, when export_fig is used, the output image (of whatever kind) shows:

- latex formula is scaled up = bigger
- background of formula doesn't fir anymore (because it's not scaled)
- latex formula is buggy, the '2' is upscaled, yet the square root is not

Maybe you can get around to implementing this as well. Makes it a bit useless for me since I usually have to have formulas in my legends or annotations.

Comment only
10 Apr 2013 Oliver Woodford

### Oliver Woodford (view profile)

Michael: Note that export_fig does not transparency in patch objects in vector formats. Only a transparent background is supported.

Comment only
10 Apr 2013 Michael

### Michael (view profile)

I would love to use this tool to export vectorized eps with transparency, unfortunately I am running a Mac and I seem to require pdftops. I get this error message: "Pdftops not found. Please locate the program, or install xpdf-tools from http://users.phg-online.de/tk/MOSXS/"

Comment only
10 Apr 2013 Wouter

### Wouter (view profile)

Use this submission daily. Should be incorporated in Matlab!

28 Mar 2013 yuhua zou

### yuhua zou (view profile)

Great! It provides what I need!

15 Mar 2013 Viktar Tatsiankou

### Viktar Tatsiankou (view profile)

14 Mar 2013 arnold

### arnold (view profile)

nice job!

Do you think you could add the ability to change all fonts in the figure to a certain one? Would be really useful when exporting figures for publications that use a certain font, to keep a consistent look.

Comment only
13 Mar 2013 arnold

### arnold (view profile)

09 Mar 2013 Laura

### Laura (view profile)

Sorry. my fault. problem solver. Export_fig working perfectly:)

Comment only
08 Mar 2013 Laura

### Laura (view profile)

Hi!!
Very nice tool! However I am having a problem that couldn't solve so far...and it is driving me a bit crazy. Export_fig is changing the sizing of my figures so that the aspect ratio is altered! Could someone tell me why or how to avoid it? I need to print it exactly with the size it is defined,

Thanks

02 Mar 2013 Wouter

### Wouter (view profile)

25 Feb 2013 LY Cao

### LY Cao (view profile)

great work!
but I found something wrong:
scatter(rand(10,1),rand(10,1),50);
export_fig('1.png',gca)
and the axes in 1.png is empty.
the matlab function allchild can't find the children of a handle whose type is 'hggroup'(e.g. scatter hggroup).
I modified the allchildren function in isolate_axes.m：
function ah = allchildren(ah)
ah = allchild(ah);
if iscell(ah)
ah = cell2mat(ah);
end
ah = ah(:);
for i = 1:numel(ah)
if strcmp(get(ah(i),'type'),'hggroup')
t =allchildren(ah(i));
ah(end+1:end+numel(t)) = t;
end
end
return
and it worked.

25 Feb 2013 Sauro Salomoni

### Sauro Salomoni (view profile)

23 Feb 2013 David Verrelli

### David Verrelli (view profile)

Hi, Oliver,
I had played around with the relevant commands to copy figures as high-resolution bitmaps, using the undocumented "hardcopy" function suggested by TMW staff
e.g. hardcopy(hF_StatsAVI, '-Dopengl', '-r100')
In comparison, your function is more convenient to use, and much better documented.

I am using it to save out PNG files with either whigte or transparent figure background. However, I was baffled when running the same commands which had been succesful previously began outputting images with black backgrounds, despite my setting
set(gcf, 'color','white');
The problem seems to be that it is necessary to _manually_ select "Use figure color" in the "Copy Options" dialogue box, under "Edit" from the figure's menu bar.
I would normally want to produce a metafile with "Transparent background" when _copying_ the figure, except for some recalcitrant plots; hence, I don't usually have "Use figure color" selected.
I thought it might be possible to toggle this programatically, but the command
set(gcf, 'InvertHardCopy', 'off');
was not effective.

Anyway, these issues seem to point to flaws in MATLAB, rather than in your code.

~~~~~

By the way
set(gcf, 'color','none');
is generates this message:
"Warning: Setting the ColorSpec to 'none' for a figure will not be allowed in a future release."
It still works at the moment, and personally I would rather it continued to work. I hope it is replaced by an alternative, and not just removed.

—DIV

18 Feb 2013 Max

### Max (view profile)

In case anyone cares: solved my problem by writing '\circ' instead of '°'. Exports fine now :)

Comment only
14 Feb 2013 Max

### Max (view profile)

I like and use this a lot, thanks for the submission!
However, the degree symbol (°), which is part of the axis label on one of my plots, does not appear in the vectorized PDF. Is this a known issue? Are there any suggestions on how to deal with it?
Found a similar issue here: http://modb.oce.ulg.ac.be/mediawiki/index.php/Matlab/Octave_scripts#Incomplete_satellite_images
Maybe they are related...

Comment only
11 Feb 2013 Ali Hummos

### Ali Hummos (view profile)

Outstanding!

10 Feb 2013 Arindam Bose

08 Feb 2013 Max

### Max (view profile)

04 Feb 2013 Dmytro

### Dmytro (view profile)

Great thing, absolutely musthave! Use it a lot.

I would also like to report a minor, although sometimes very annoying, bag:
when used with zbuffer, anti-aliasing does not work well with LaTeX text, corrupting it and changing its size and shape. To see this, try to export some figure with both 3D-surfaces and some LaTeX-rendered labels ("export test.tiff -a2 -zbuffer;"). It would be great if this can be fixed!

28 Jan 2013 Damjan Miklic

### Damjan Miklic (view profile)

Great piece of software. A must-have for scientific publishing!

28 Jan 2013 guo

### guo (view profile)

thx very much. very useful and enlightening!

18 Jan 2013 Yan Jiang

### Yan Jiang (view profile)

A must have for scientific researchers!

09 Jan 2013 Salman Mashayekh

### Salman Mashayekh (view profile)

05 Jan 2013 Christian

### Christian (view profile)

export_fig did exactly what I needed.

I had to change the file user_string.m though, because it failed to write the settings. MATLAB said "error: Error using ==> fwrite: Invalid precision.", so I replaced fwrite with fprintf.

The correction can be found here.
https://www.dropbox.com/s/g139kxk08845qxa/user_string.m

20 Dec 2012 Tobias Lamour

### Tobias Lamour (view profile)

Oubeid,

if you read all the description above you will discover the following lines towards the end:
"Usage examples can be found at:

If you follow Oliver’s link with the examples you will find towards the end of the page the example below, which exactly provides what you would like to do:

Variable file names:

for a = 1:5
plot(rand(5, 2));
export_fig(sprintf('plot%d.png', a));
end

Good luck!

19 Dec 2012 Oubeidillah

### Oubeidillah (view profile)

Thanks for sharing this useful program.
A quick question:
I am saving multiple figures with different name in for loop. Is it possible to use a name that is dynamically created depending on the value of the loop iteration like ['name' int2str(i)] -jpg ?

Thanks

Oubeid

Comment only
12 Dec 2012 Ratish Punnoose

### Ratish Punnoose (view profile)

Oliver, you are possibly correct. I may have made the change in an earlier version to let my cygwin install work with it (and then forgotten about it). Thanks for incorporating the change. That will make it work well with cygwin.

12 Dec 2012 Oliver Woodford

### Oliver Woodford (view profile)

Ratish: The code was never previously as you say it was. However, I will implement the change you suggest.

michael: It's currently unsupported. I'll look into implementing it.

Comment only
08 Dec 2012 michael

### michael (view profile)

Sir,
Really nice function, nice job !!

I'm trying to export an uipanel which contains multiples plots/ axes. Your function can only pass handle or axes. Is there any way to pass a uipanel ?

regards,

Michael

Comment only
07 Dec 2012 Bahaa

### Bahaa (view profile)

26 Nov 2012 Ratish Punnoose

### Ratish Punnoose (view profile)

In ghostscript.m, the following line
if ispc
bin = {'gswin32c.exe','gswin64c.exe', 'gs'};
else ...

got changed to
if ispc
bin = 'gswin32c.exe','gswin64c.exe'};
else ...

That stopped export_fig from being able to use the ghostscript packaged with cygwin on windows.
Restoring 'gs' to the array fixes this.

26 Nov 2012 University Dschang

### University Dschang (view profile)

Hi, i would like to read a grd file of gridgen software using matlab.Thanks!

Comment only
21 Nov 2012 Jonathan

### Jonathan (view profile)

20 Nov 2012 Anoosha papireddy

13 Nov 2012 zhr

### zhr (view profile)

2Aleg: try to use
orient portrait
before export_fig. It helps for me but I can't test your code now.

Comment only
13 Nov 2012 Oliver Woodford

### Oliver Woodford (view profile)

Aleg: The second sentence of the file description reads "Figure/axes reproduced as it appears on screen". Also there is no mention of a 'PaperOrientation' option in the ample help text.

Comment only
13 Nov 2012 Aleg

### Aleg (view profile)

I try to create a pdf file with a figure and it always creates file landscape orientation. No matter what parameters I put in place. Code example:

figure('PaperSize',[20.98404194812 29.67743169791]);
plot(AvgIndustryLP(1:end,1),'-g');
set(gcf, 'Color', 'w');
export_fig ('PaperOrientation','portrait','test.pdf')

Does any one know how to define paper orientation for pdfs in export_fig?

Thanks

Comment only
09 Nov 2012 Cesar

### Cesar (view profile)

For some reason, explicitly specifying the -r150 option fixed the issue. However since export_fig does not pass the -r argument when generating an eps file, I modified it by adding code around line 401 as follows:
p2eArgs = {renderer};
if options.magnify ~= 1
p2eArgs = [p2eArgs {['-r',num2str(options.magnify*get(0, 'ScreenPixelsPerInch'))]}];
end

Of course this fixed only my issue and probably needs to be verified.

This is strange since "print" uses -r150 by default according to the documentation.

Thanks for the great script!

Comment only
08 Nov 2012 Cesar

### Cesar (view profile)

Great work!!
Just one issue.
I am also using addTopXAxis.m (File ID: #9046) to add a second x axis with a label on top of the plot.
When I use your script to save to a PDF file, the second x label is not printed.
Any hints as to why this is happening and how to to correct it?

06 Nov 2012 Long Nguyen

### Long Nguyen (view profile)

02 Nov 2012 Nitin

### Nitin (view profile)

25 Oct 2012 Alan Chen

### Alan Chen (view profile)

25 Oct 2012 masiat

### masiat (view profile)

YEAH! Best submission ever on the fileexchange! It made my day and saved me from jumping off a bridge while trying to finish my phd thesis!
This seems to be the *only* way to export figures in a reasonable resolution without *very strange* gridlines. The author did an excellent work which the people on mathwork have somehow missed over many years!

22 Oct 2012 Cahaya

### Cahaya (view profile)

17 Oct 2012 Michael Steinbock

### Michael Steinbock (view profile)

Indispensible tool!! I do have one issue with saving vector figures that have overlaid lines. The white lines turn a dark blue when I save to pdf or eps (but not png). The code below demonstrates:

figure
imagesc(peaks(128))
hold on
plot(1:128, 1:128, '-w', 'linewidth', 2)
hold off
export_fig('-painters', '-r600', '-q101', 'test.pdf')

16 Oct 2012 Juan Cardelino

### Juan Cardelino (view profile)

16 Oct 2012 Malcolm Hudson

13 Oct 2012 John

### John (view profile)

Great script, thanks for your work!

05 Oct 2012 Koen

### Koen (view profile)

A wonderful file. This is so much better than the native matlab functions! Now I can finally print figures for publications without a whole lot of re-editing and tweaking to make them look just right.

03 Oct 2012 Olivier

29 Sep 2012 Karl

### Karl (view profile)

26 Sep 2012 twimmeh

24 Sep 2012 dbdq

### dbdq (view profile)

Thanks to this utility, now I can export my images on background with native resolution! Thanks a lot!

24 Sep 2012 dbdq

### dbdq (view profile)

Thanks to this utility, now I can export my images on background with native resolution! Thanks a lot!

18 Sep 2012 Kami

18 Sep 2012 Kami

### Kami (view profile)

16 Sep 2012 Laurent

### Laurent (view profile)

12 Sep 2012 Sam Johnson

### Sam Johnson (view profile)

This function is a life saver. I now use it for every publication ready figure as the output is exactly as I see it in MATLAB and sometimes even better!

Thank you.

10 Sep 2012 James Gwilliam

### James Gwilliam (view profile)

Is there a way to include a URL in a PDF file from export_fig that will work as an active hyperlink in the resulting PDF file?

07 Sep 2012 Rodolphe

### Rodolphe (view profile)

Great Job and great function. !
Is there a way to export in pdf/eps with the -transparent option but without the painters renderer?

27 Aug 2012 Will Fonseca

### Will Fonseca (view profile)

Found the solution of my question ans extra help in:

27 Aug 2012 Michal Ficek

### Michal Ficek (view profile)

Good job! Something that finaly works as I expected. Thanks!

10 Aug 2012 Will Fonseca

### Will Fonseca (view profile)

This package is perfect for exporting figures.
However, I have one issue.
How can I export several pictures ?
Because whatever I put after "export_fig" will turn into a string, so I cannot include a name that increases with one variable.

Can anyone point me a solution ?

Thank you very much.

10 Aug 2012 Will Fonseca

### Will Fonseca (view profile)

08 Aug 2012 David Wang

### David Wang (view profile)

I found the pdf figures (4-panel pcolor plots) that export_fig creates on a linux box are rendered very slowly in Preview on my macbook pro (mac os x snow leopard). Does anyone encounter a similar issue? I wonder what's the cause of the problem. The pdf figures are not particularly large (about 5 MB each). Thanks.

08 Aug 2012 Sandrine

### Sandrine (view profile)

01 Aug 2012 Ratan

### Ratan (view profile)

24 Jul 2012 Todd Karin

### Todd Karin (view profile)

Hello Oliver,

I have an image that is 40 x 40 pixels. In the matlab figure window, the pixels are crisply separated from one another, but I can't get your code to export a pdf with the pixels cleanly separate. Do you have any suggestions for how to save the figure exactly as it is in the matlab figure window? To see what I mean, try:

figure
imagesc(peaks(40))
export_fig('test.pdf','-q1000')

23 Jul 2012 Jessica Lam

### Jessica Lam (view profile)

22 Jul 2012 Ileana

### Ileana (view profile)

Thanks! great work
http://www.mathworks.com/matlabcentral/fileexchange/feedbacks/new?id=23629&rating=5&stamp=1342975977work

18 Jul 2012 JR King

### JR King (view profile)

Impressively efficient.
However, it doesn't export changes of line width for transparent patches, even in png.

Thanks

18 Jul 2012 Ryan

### Ryan (view profile)

Well done - robust, continually updated and works great!

16 Jul 2012 Oliver Woodford

### Oliver Woodford (view profile)

Pavel: set the figure size to the size of output you want, e.g. 3x4 inches. Then specify the output resolution you want in the call to export_fig. Simple.

Comment only
15 Jul 2012 Pavel

### Pavel (view profile)

I see that the pixel size or size in inches of the produced question has been a subject of discussion. What's the status as of 7/2012? I find that no matter what I try, my PNG comes out the same size (in inches). Then, if I scale it down afterwards, line art and text get affected.

The desired behavior for me is as follows: I get to specify the size (e.g. 3"x4") and the resolution (e.g. 200 dpi). The text size is adjusted so that, proportionally, it looks the same as in the figure. Same for the thickness of line art. However, the higher the resolution, the higher the quality of lines (by affecting the aliasing, I suppose).

Is this achievable? I'm willing to go into the code and modify it.

Thank you for this great script.

15 Jul 2012 Pavel

### Pavel (view profile)

I see that the pixel size or size in inches of the produced question has been a subject of discussion. What's the status as of 7/2012? I find that no matter what I try, my PNG comes out the same size (in inches). Then, if I scale it down afterwards, line art and text get affected.

The desired behavior for me is as follows: I get to specify the size (e.g. 3"x4") and the resolution (e.g. 200 dpi). The text size is adjusted so that, proportionally, it looks the same as in the figure. Same for the thickness of line art. However, the higher the resolution, the higher the quality of lines (by affecting the aliasing, I suppose).

Is this achievable? I'm willing to go into the code and modify it.

Thank you for this great script.

Comment only
14 Jul 2012 Alexander Farley

### Alexander Farley (view profile)

Works as expected first try.

13 Jul 2012 Fabio Gori

### Fabio Gori (view profile)

Very helpful! But it didn't crop properly when my ylabel was longer than they y axis.

05 Jul 2012 Jeff Evans

### Jeff Evans (view profile)

Fantastic. I've been using this for several years, and it works perfectly. What you see on the screen is what you get in your exported figure.

Why Mathworks can't develop and implement something that works this well is a mystery to me. I guess as long as you'll do it for free, they don't have to...

Many Thanks

03 Jul 2012 rito

### rito (view profile)

very helpful set of codes! Super well documentation and ease of use. Thanks.

21 Jun 2012 Kevin Moerman

### Kevin Moerman (view profile)

I've a semi-transparent surface (triangulated patch data and the renderer is opengl) with curves on it (plot3 lines). When I use:
export_fig('temp.png','-r100');
to create the figure the lines get thinner with respect to the image content as a function of the resolution. Increasing line width does not seem to have an effect. Is there a way to fix/set line thickness?

Thanks

Comment only
20 Jun 2012 Javier

### Javier (view profile)

Hi,

when I save a figure in png a gray border appears, how can I avoid this?

Thank you

15 Jun 2012 Mathieu

### Mathieu (view profile)

Best package out there to save vector graphics. Highly recommended!

24 May 2012 Zhiyong

### Zhiyong (view profile)

Was having trouble saving figures in high resolution, since there seem to be no inbuilt functions that allow this. This user-created function was great. I have an enquiry on the '-native' option of export_fig. Seems like one must specify the desired high resolution himself.

22 May 2012 Haonan Chen

### Haonan Chen (view profile)

good job

08 May 2012 Hin Kwan Wong

### Hin Kwan Wong (view profile)

08 May 2012 Hin Kwan Wong

### Hin Kwan Wong (view profile)

Thanks, works great. I've tried mat2pgf, mat2tikz, fig2texps, mlf2pdf, none worked with a complex figure I have. This works perfect.

07 May 2012 Antoine C

### Antoine C (view profile)

Thanks a lot for sharing that powerfull founction.

03 May 2012 b

### b (view profile)

Hi,

This is the first time off exchange I am trying to use.
I have copied the zip content into my current folder. It still prompts that it cannot find the functions. Even after again adding the path, it cannot find pdftops even though I see it in the directory.

As I need transparency, I cannot use painters or zbuffer. Should I expect quality improvement with this set of tools then?

In the meantime, how do I save a pdf of the figure only and not a page?

Cheers

Comment only
25 Apr 2012 John

### John (view profile)

I am wondering if anyone has found a good technique for using export_fig to automatically paste figures into a word document. i use save2word often, but haven't figured out how to link the two up. Also, I must be doing something wrong with the resolution, so if anyone has a good example of how to get good resolution (for a .PNG maybe?) I would appreciate the advice.

22 Apr 2012 b

### b (view profile)

Hi,

This is the first time off exchange I am trying to use.
I have copied the zip content into my current folder. It still prompts that it cannot find the functions. Even after again adding the path, it cannot find pdftops even though I see it in the directory.

As I need transparency, I cannot use painters or zbuffer. Should I expect quality improvement with this set of tools then?

In the meantime, how do I save a pdf of the figure only and not a page?

Cheers

Comment only
10 Apr 2012 Oliver Woodford

### Oliver Woodford (view profile)

none: Currently fontnames are case sensitive. Use 'Symbol'.

Comment only
09 Apr 2012 Matlab2010

### Matlab2010 (view profile)

hi oliver.

great bit of code. I have been using it for years.

I think I may have just found a bug though:

I am running MATLAB 2010B on win7 (64bit).

if you run:

figure;
T = 2048;
x=randn(1,T);
plot(x)
set(gca, 'YTick', [-1 0 1])
str2={'-p' ' 0' '+p'};
set(gca,'YTickLabel',str2,'fontname','symbol');
export_fig('D:\test', '-PDF');

you see that export_fig "unconverts" the symbol back to plain text and exports it as plain text.

can you comment on this?

I have also posted on the matlab site so others can see too.

best wishes

08 Apr 2012 Scott

### Scott (view profile)

Handy! One suggestion: if the output directory doesn't exist, offer to make it. I expected this because it already makes directories for the different file types.

04 Apr 2012 sam p

### sam p (view profile)

Great job.!!

29 Mar 2012 John Reinert Nash

### John Reinert Nash (view profile)

28 Mar 2012 Estee

### Estee (view profile)

28 Mar 2012 Estee

### Estee (view profile)

For a long time I've been frustrated that saving .fig's will result in (for some reason) 3D sized images that are not the same size as the original image! This function is awesome, thanks!

20 Mar 2012 Andrey

### Andrey (view profile)

18 Mar 2012 Bosheng

### Bosheng (view profile)

I like the transparency!!

09 Mar 2012 Yuri K

### Yuri K (view profile)

Thanks, Oliver. I've solved the problem by using colors from colormap. Thanks for surely the best submission. (Just found that I haven't rate it yet.)

08 Mar 2012 Oliver Woodford

### Oliver Woodford (view profile)

Yuri: Please, this is not the place for bug reports; see my comments on emailing me directly. I have added a note on this issue to the export_fig web page (link at the top).

Comment only
08 Mar 2012 Yuri K

### Yuri K (view profile)

Oliver, I have a problem exporting bar-plot to PDF if I set the FaceVertexCData property. The output has no plot, only empty axes.

Here is a code example:
hx = bar(rand(10,1),'hist');
fvcd = zeros(10,3) + 0;
fvcd(1:5,:) = 0.5;
set(hx,'EdgeColor','none','FaceColor','flat','FaceVertexCData', fvcd)
export_fig test -pdf

Comment only
06 Mar 2012 Jaroslaw Tuszynski

### Jaroslaw Tuszynski (view profile)

Very useful function. i found it especially useful for creating images for PowerPoint presentations which were small enough to be send by email.

05 Mar 2012 Blake Richards

### Blake Richards (view profile)

04 Mar 2012 Umberto

### Umberto (view profile)

Wow, this is incredible! Finally the long and arduous journey of finding a function that prints cropped vector quality figures is complete. I would give it 6 stars if I could. Cannot thank you enough man. Fantastic work, much appreciated.

01 Mar 2012 Bijesh

thanks a lot!

25 Feb 2012 Igor

### Igor (view profile)

25 Feb 2012 Kiron

### Kiron (view profile)

Great work!

Excellent. This has worked wonders for my PowerPoint presentations.

18 Feb 2012 Wonsang You

### Wonsang You (view profile)

14 Feb 2012 Jinwei Gu

### Jinwei Gu (view profile)

09 Feb 2012 Kevin Moerman

### Kevin Moerman (view profile)

I've tested this for some patch graphics and pdf export. If I just use: export_fig test.pdf, Then for intersecting patch objects (without transparency)it sometimes places the wrong patch objects in front.

Other than that very nice.

Comment only
03 Feb 2012 Giorgio

### Giorgio (view profile)

27 Jan 2012 Ken Campbell

### Ken Campbell (view profile)

Oliver was extremely helpful when I contacted him with a question. His page

27 Jan 2012 Oliver Woodford

### Oliver Woodford (view profile)

alexancer: Yes. I don't recommend exporting large patch-based objects to EPS. Better to create a resterized version (e.g. export to PNG) then embed in an EPS file using an external application.

Comment only
27 Jan 2012 alexancer

### alexancer (view profile)

One problem is when I export eps file from a surface graph from thousands of data points. The size the exported file is very large, almost 40MB for each.

26 Jan 2012 sunil anandatheertha

### sunil anandatheertha (view profile)

wowwww...! Thanks a lot for this great share. Still a beginner here,, :),, and your codes are giving me a lot to learn.

Extremely useful.. Am sharing the links with frnds.. B)

19 Jan 2012 Oliver Woodford

### Oliver Woodford (view profile)

Kemal: MATLAB cannot save transparency using the painters algorithm, so transparency in eps cannot be supported in export_fig either. You can save vector graphics with transparency by exporting to svg (http://www.mathworks.com/matlabcentral/fileexchange/7401), then convert to eps using an external program.

As for the bug, if you want me to look into it please follow my many requests and contact me directly.

Comment only
19 Jan 2012 Kemal

### Kemal (view profile)

Needless to say the Matlab functions don't work.

Comment only
19 Jan 2012 Kemal

### Kemal (view profile)

There are problems when exporting figures containing two transparent patches (using patch.m and setting 'facealpha' 0.7).

set(gca,'Color','none')
export_fig 'filename.png' -transparent

this results in a correct png-figure, however I need a higher resolution picture than the default. Using the following command

set(gca,'Color','none')
export_fig 'filename.png' -transparent -m2

the picture gets screwed up: weird misalignments in the upper half of the figure.
Is there a fix for this problem? Exporting a figure with transparent patches to png in high quality (if it would work for eps as well I'd be thrilled).

Thanks!

18 Jan 2012 Zoe Zhang

### Zoe Zhang (view profile)

17 Jan 2012 Petteri T

### Petteri T (view profile)

12 Jan 2012 Darren Price

### Darren Price (view profile)

Why on earth is this not part of matlab as default? Sort it out Mathworks people need this type of thing!

Comment only
12 Jan 2012 Ingo

### Ingo (view profile)

01 Jan 2012 Ioannis Filippidis

### Ioannis Filippidis (view profile)

Works perfectly, thanks! Very powerful in combination with LaTeX annotated axes, title and legend, with export to PDF for use in XeTeX. More direct than other methods (e.g. laprint, PStricks, METAPOST, TikZ exports).

26 Dec 2011 Renwen Lin

v good!

23 Dec 2011 Xin

### Xin (view profile)

Very useful package to export beautiful figures.

20 Dec 2011 Nathan Tomlin

### Nathan Tomlin (view profile)

09 Dec 2011 Sebastien PARIS

### Sebastien PARIS (view profile)

08 Dec 2011 Ankur Pawar

### Ankur Pawar (view profile)

Very useful function.

07 Dec 2011 Chris

### Chris (view profile)

This is great.

Does anyone know how I can add bookmarks to a multi-page pdf file?

Thanks

07 Dec 2011 Rene

### Rene (view profile)

You are one of my favourite persons now. THANK YOU!!

07 Dec 2011 Rene

### Rene (view profile)

06 Dec 2011 John Colby

### John Colby (view profile)

This is my favorite FileExchange submission. Period. I've been using it for over a year, and can't imagine going back to the old way. Thanks, Oliver!

29 Nov 2011 owr

### owr (view profile)

27 Nov 2011 Daniel

### Daniel (view profile)

Hey Oliver,
thanks for that impressive tool. One problem/question:
I got a square axes in a 16:10 figure. Although I use
set(gcf, 'InvertHardcopy', 'off', 'Color', 'black')
the figure background (not axes bg) and legend texts are getting inverted (also with print()). Is there any way to prevent that? I also used -transparent, but without success.

Thanks, Daniel

24 Nov 2011 Anuj

### Anuj (view profile)

14 Nov 2011 pietro

### pietro (view profile)

This function is really great, but the eps quality isn't good as the pdf one. Do you have any suggestion?

09 Nov 2011 Cameron Sparr

### Cameron Sparr (view profile)

03 Nov 2011 Son Hua

### Son Hua (view profile)

31 Oct 2011 Sam Hallman

### Sam Hallman (view profile)

I use export_fig all the time and I love it. I've made a lot of wonderful figures thanks to this tool. The web documentation is excellent.

Comment only
31 Oct 2011 Sam Hallman

### Sam Hallman (view profile)

27 Oct 2011 Onkar Singh Gujral

### Onkar Singh Gujral (view profile)

very good

07 Oct 2011 Felix Zoergiebel

### Felix Zoergiebel (view profile)

I have problems with calling ghostscript (and also pdf2ps) from MATLAB R2011b on OS X 10.6.8. system('/opt/local/bin/gs') gives me this error:

Referenced from: /opt/local/lib/libfontconfig.1.dylib
Reason: Incompatible library version: libfontconfig.1.dylib requires version 14.0.0 or later, but libfreetype.6.dylib provides version 10.0.0
/opt/local/bin/gs: Trace/breakpoint trap

I fixed the problem by deleting MATLABs DYLD_PATH_LIBRARY variable before calling ghostscript in ghostscript.m:

[varargout{1:nargout}] = system(sprintf('export DYLD_LIBRARY_PATH=""; /opt/local/bin/gs %s', cmd));

Same should work for pdf2ps.m.

This problem does not exist on MATLAB 7.4, since there is no libfreetype.6.dylib in the MATLAB installation. Hope that this little report helps somebody else.

22 Sep 2011 Erika

### Erika (view profile)

19 Sep 2011 Oliver Woodford

### Oliver Woodford (view profile)

Shaun: Thanks. I understand a big change to the way MATLAB handles graphics is coming at some point. When it does I expect export_fig will break in many ways. For now you can disable the warnings.

Comment only
19 Sep 2011 Shaun

### Shaun (view profile)

Heads up, set(gcf,'color','none') is going away. I am getting warnings..

18 Sep 2011 Oliver Woodford

### Oliver Woodford (view profile)

apañero: Use the -r180 option to set the dpi in the image file correctly (Otherwise how is export_fig supposed to know the dpi? That information isn't stored anywhere in the figure.). Then set the image size so you get the desired output resolution (size of image in pixels). In your case the image size on screen should be 7cm x 7cm.

Comment only
17 Sep 2011 apañero

### apañero (view profile)

There is a problem if you want to keep the same resolution and document size as the original image.

With a 180dpi image and 7 x 7cm size
export_fig image -tif -native
Image exported is 96dpi and 13 x 13cm size (same overall resolution but different dimensions)

If I use -r180
Image exported is 180dpi but 13 x 13cm and double pixel size (again, same overall resulution but image dimensions are wrong).

export_fig image -tif -native

Comment only
14 Sep 2011 Oliver Woodford

### Oliver Woodford (view profile)

Ole: Export_fig doesn't support embedding tiff previews in eps files, sadly. It's probably possible to do with an external application, and if it has a command line interface you could write a MATLAB wrapper for it.

Comment only
13 Sep 2011 Ole

### Ole (view profile)

This code is of great help! Can anyone say whether or how tiff previews/thumbnails can be included into eps files?

02 Sep 2011 David Wang

### David Wang (view profile)

23 Aug 2011 Peter T. S. DeVore

### Peter T. S. DeVore (view profile)

Be warned, you *will* need to tune image parameters to make your image file consistent with the results from saveas.

Comment only
23 Aug 2011 Peter T. S. DeVore

### Peter T. S. DeVore (view profile)

Works excellently. Found out how to make CMYK tiffs for publication. Follow this code:

figure('InvertHardcopy','off','Color',[1 1 1]); % Force the background to be white
plot(x, y);
export_fig([filepath filename 'full'], '-tif', '-cmyk', '-r300'); % For CMYK 300 DPI tiff images

22 Aug 2011 Oliver Woodford

### Oliver Woodford (view profile)

I'm afraid I won't be responding to requests for help in this comments section from now on. The help text and web page are more than detailed enough. Bug reports can be emailed directly to me.

Comment only
22 Aug 2011 Martin

### Martin (view profile)

Hi
This is a very very useful function. But I have one problem. I am not able to get the same screen resolution while exporting quiver plots. I export quiver plots to .tiff files and then I open it in Imagej. But the arrows appear very blurry as I zoom in. I tried the following:

export_fig test.tiff -m2 -r 250

It would be great if you can help me with this.

Thanks
Sundar

Comment only
09 Aug 2011 Oliver Woodford

### Oliver Woodford (view profile)

Patrick: A clean install of R2011a and export_fig on a 32-bit XP machine yielded a cropped, correctly sized figure for me just now. Sorry not to be more help!

Comment only
08 Aug 2011 Patrick Maletinsky

### Patrick Maletinsky (view profile)

Oliver: Thanks much for checking! I just repeated what you did (plot(rand(3)); export_fig test.pdf;) and sure enough, the output-pdf contains the figure with the (standard) gray background on a letter-sized white background.
Since things work out on your installation it might have something to do with my Matlab settings/preferences (?). I didn't set anything special though and also checked on a couple of other machines of colleagues of mine and the scheme seems consistent: R2011a yields letter-sized outputs and all earlier installations do what I tell them to do.

If anybody knows a solution to this problem, I would greatly appreciate. For now, I just run export_fig on older versions of Matlab only ;-)

Again, thanks for this great script in any case, Oliver!!!

P.S.: This was all on Windows XP 32-bit machines.

Comment only
05 Aug 2011 Jiaqi

### Jiaqi (view profile)

04 Aug 2011 weijie

### weijie (view profile)

You save me thesis!

03 Aug 2011 Oliver Woodford

### Oliver Woodford (view profile)

Patrick: I just installed R2011a on a Vista 32-bit machine and ran
plot(rand(3));
export_fig test.pdf;
It worked as expected.

Comment only
02 Aug 2011 Patrick Maletinsky

### Patrick Maletinsky (view profile)

Great script - thanks a lot Oliver!

I recently upgraded from Matlab R2009a to R2011a, which caused a problem with export_fig: after the upgrade, figures exported to .pdf (and/or .eps) have a fixed paper-size of US legal (i.e. typically a lot of white space around my figures). I can't find a way to alter the paper size of my exported figures in Matlab now. When I ran export_fig on Matlab R2009a, the paper-size after exporting with export_fig used to be set by the original figure size. Any ideas how I can get back to these settings?

Comment only
02 Aug 2011 Patrick Maletinsky

### Patrick Maletinsky (view profile)

29 Jul 2011 Sébastien

28 Jul 2011 Jie

### Jie (view profile)

Hi, Oliver, thank you so much for your kind help. The zbuffer renderer works for me. However, I still prefer the EPS output than BMP (it blurs when zoom out or zoom in). As what you said, the white tin network did have different appearances in different applications.

Thank you once again for your kind help.

28 Jul 2011 Oliver Woodford

### Oliver Woodford (view profile)

Jie: Yes, the lines should not be visible in printed figures. Also, try the zbuffer renderer if opengl fails.

Comment only
28 Jul 2011 Jie

### Jie (view profile)

Hi, Oliver, thank you for your swift reply. You know, Google is fighting against with the Chinese government, and I can not see the examples and explanations listed in google site.

What you mean is that the paper-printed figure will not show such tin network? However, when I try to save the bmp and jpg format, I got following error:
setting PBuffer for OpenGL printing: invalid drawable.

Interestingly, I did save jpg file several days before. I do not know why I can not save bmp now.

Comment only
28 Jul 2011 Oliver Woodford

### Oliver Woodford (view profile)

Jie: I explain the reason for this on the examples webpage. It's your PDF reader at fault, but it means that 3D surfaces are better exported as bitmaps.

Comment only
27 Jul 2011 Jie

### Jie (view profile)

Hi, Oliver, the export_fig is really a great tool which helps a lot to my paper. Thank you.

But, I got a problem when I want to export a 3D surface produced by 'mesh' or 'surf'. Although the output in the figure window of Matlab is normal, the exported figure are covered with white tin network, which is especially evident for gray surface.

Actually, you can find the white tin network on the icon of export_fig at the top of this webpage (the nice color surface produced by this tool is covered with white tin network).

This problem is deriving me crazy in recent days. I tried to change various line properties, however, it never works.

22 Jul 2011 Oliver Woodford

### Oliver Woodford (view profile)

Brad: You can use -painters and -r200. If it doesn't do what you expect then contact me directly. Also, just put the files on your MATLAB path to avoid moving them to your current directory - that is standard and nothing to do with export_fig, though.

Comment only

This function is fantastic. Whats more, is that it can be incorporated into my functions, so that I can save multiple plots and figures in glorious high resolution. I love it and its so easy to use!

However, I've been copying all the export_fig files located in the export_fig folder to current working directory (which changes often). This works, but I don't want to do it everytime I start working in a new directory and I want to make figures.

Is there a way to put export_fig in its own folder (perhaps C:/Program Files/Export Fig/export_fig) and call it from my current directory without changing back and forth to that directory? Also, I'd like to use options like -painters and -r200.

Thanks Oliver!

21 Jul 2011 Oliver Woodford

### Oliver Woodford (view profile)

Eli: Yes, -painters works on all systems. If you have a specific problem you should contact me directly.

Comment only
21 Jul 2011 Eli

### Eli (view profile)

Thanks Oliver. I am referring to the size of the image (in Kb). If you have many pictures in your file, the document size grows quickly and cannot be submitted. I already tried -q30 etc, -r, it has no effect. The gs command with options in linux can reduce the size (not so nice), but I want to do everything in export_fig. I guess I have to re-program my plot.

I would like to thank you for this code. It has served me good in past weeks !

Suggestion: put set(gcf, 'Color', 'w') in default. It scares off newcomers to see those, often unwanted, margins.

Is -painters option supposed to work on pdf/eps files on any system?

Comment only
21 Jul 2011 Oliver Woodford

### Oliver Woodford (view profile)

Eli: Are you refering to file size or paper size? File size can be changed using the -qXX option, e.g. -q50, though it only affects the images in files. If paper size, change the figure size.

If you want me to assist you with errors then I suggest you follow the instructions at the end of the description.

Comment only
21 Jul 2011 Eli

### Eli (view profile)

Great software.

How do you control the size of the output PDF or EPS? I want to reduce the size.

In addition, the -painters option does not work for me, in pdf/eps files. I tried it on various linux and win systems.

20 Jul 2011 Dan K

### Dan K (view profile)

Oliver,
Thanks for the response... Following your suggestion, I found IMCLIPBOARD (http://www.mathworks.com/matlabcentral/fileexchange/28708-imclipboard) which does just that. Now if I can just find one that outputs to clipboard in vector format.
Dan

Comment only
19 Jul 2011 Oliver Woodford

### Oliver Woodford (view profile)

Dan: No, there isn't. However, you can output the image as an array, so if you find a way of copying an array to the clipboard as an image you're there.

Comment only
19 Jul 2011 Dan K

### Dan K (view profile)

Hi Oliver,
Very nice. One question: I am also fighting with the whitespace outside of copied images. Your cropping seems to do the job nicely. Is there a way to use export_fig to export to the clipboard?
Thanks,
Dan

18 Jul 2011 Oliver Woodford

### Oliver Woodford (view profile)

pvans: You can control the amount of whitespace around an axes by setting the axes' position and using export_fig's -nocrop option.

Comment only
17 Jul 2011 Austin

### Austin (view profile)

Thanks for this.

Mathworks, it's ridiculous that I have to resort to third-party packages to programmatically export my figures. Every time I come across some problem like this it moves me closer and closer to doing all my development with numpy/scipy.

14 Jul 2011 pvans

### pvans (view profile)

Hi Oliver,

I would like to save an figure with both

1) an image object inside of it saved at native resolution

2) control over the size of the whitespace outside of that image's axes, in pixels.

Your '-native' option works well for 1), but it seems that in order to accomplish 2) simultaneously, I need to resize the figure without resizing the image. I can do this by setting the image axes 'Units' property to 'Pixels' (instead of the default 'Normalized'), but that change seems to make export_fig work incorrectly. Is there a way to do this with your program?

Comment only
29 Jun 2011 Emily

### Emily (view profile)

20 Jun 2011 Sherif

### Sherif (view profile)

Very useful. Thank you.

19 Jun 2011 Céldor

### Céldor (view profile)

In EPS files which I export my figures to, all fonts are changed to different ones. Arial is changed to Helvetica, Arial Narrow is changed to Courier, etc.

Comment only
13 Jun 2011 Oliver Woodford

### Oliver Woodford (view profile)

Farzad: export_fig has the same font issue as print, as described on my usage and examples web page (link in description above).

Comment only

to Zbigniew:
What do you mean by wrong font? isnt it the original font you see before exporting?! It exports the figure as the way you see on the screen. If you want another font you have to change it before using export_fig command.

Comment only
10 Jun 2011 Céldor

### Céldor (view profile)

Hi there,

This is brilliant function. It helped me to export figures properly to eps. The only thing is that it still substitutes and exports a figure with wrong fonts.

09 Jun 2011 A

### A (view profile)

This is the most wonderful program! Thank you :)

07 Jun 2011 Oliver Woodford

### Oliver Woodford (view profile)

Farzad: As you say, export_fig saves the figure as it appears on screen, and you can have a landscape-shaped figure on a portrait-oriented display, no problem.

Comment only

Hi Oliver,

This might not be a good question but if you change your display to portrait, is it then possible to save figures in landscape? I guess not since it is said that the figure is saved exactly like it is on the screen.

29 May 2011 Shiguo

28 May 2011 nsbd

### nsbd (view profile)

17 May 2011 Matthijs Klomp

### Matthijs Klomp (view profile)

Ah, I made a mistake in that. Thanks for correcting me Oliver. export_fig is really great. Although it doesn't need to mention. 908 downloads just in the last 30 days!!!

Comment only
17 May 2011 Oliver Woodford

### Oliver Woodford (view profile)

farzad: MATLAB has to ways of passing variables to functions. Withough brackets, every input is considered to be a string. With brackets, you need to specify what is a string and what isn't using ''. This is completely standard. So in your case do:
export_fig(sprintf('plot%d.png', a), '-a1');

Comment only

Hi Oliver
I have a question regarding the export_fig use in a for loop. In the examples, you gave this format for it:

export_fig(sprintf('plot%d.png', a));

what if I want to use additional arguments as well such as disabling the anti-aliasing which originally is:
export_fig plot.png -a1
I tried different formats to pass the value of 'a' parameter to export_fig in the loop but I failed. Shouldnt it be like this:
export_fig(sprintf('plot%d.png', i),a);
where a (anti-aliasing value) is the second input argument to export_fig ?!

I appreciate your great work it.

Comment only
29 Apr 2011 Dan

### Dan (view profile)

Thank you Oliver. I honestly did not notice it. The interface of the File Exchange has changed quite a bit recently and yours is the first file I download. The clarity of the tag "Download All" could be disputed though.

28 Apr 2011 Oliver Woodford

### Oliver Woodford (view profile)

Dan: There is a large blue "Download All" button at the top right of the page. Did you try that? It worked for me.

Comment only
28 Apr 2011 Dan

### Dan (view profile)

New file exchange interface is just not working. No "download" option displayed and "Watch this File" sends you in a loop between the current page and the "Watchlist" without actually showing the file.

Any suggestions?

Comment only
08 Apr 2011 Liang Zhan

### Liang Zhan (view profile)

actually it's Walter Roberson refer me to use your function, excellent, it solve me a big problem, appreciate for your code!!!

08 Apr 2011 Martin