help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Axis labels in EPS figure are outside bounding box


From: Matthias Brennwald
Subject: Re: Axis labels in EPS figure are outside bounding box
Date: Sun, 18 Oct 2009 13:05:36 +0200


2009/10/17 Ben Abbott <address@hidden>

On Oct 17, 2009, at 4:33 PM, Matthias Brennwald wrote:

Dear all

The below code example produces an eps file containing a simple figure. The resulting eps file is attached. The problem is that the axis labels are cut off, i.e. they are partially outside the bounding box of the figure. What am I doing wrong? What can I do to circumvent this problem?

(Octave 3.2.0 on Mac OS X 10.5, gnuplot 4.2 patchlevel 5)

---------------
plot (sin ([0:100]/10)); axis ([0 100 -1.1 1.1]);
fs = 18;
set (gca,'fontsize',fs);
xlabel ('x label','fontsize',fs);
ylabel ('y label','fontsize',fs);
print ('testy.eps','-depsc','-S500,400');
---------------

<testy.eps>

I'm able to run Octave 3.2.2 or the most recent developers sources on Mac OSX 10.6. I see no clipping.

Running your script produces the attached eps-file.

Upgrading your Octave to a more recent version should fix the problem for you. You can down load 3.2.3 at the link below.

       http://sourceforge.net/projects/octave/files/Octave%20MacOSX%20Binary

Ben

Dear Ben et al

I should read manuals more often. Here's what's wrong with the above example:
1. In the documentaion of print(...), the -SXSIZE,YSIZE option is not listed for EPS. While this option does work somehow, it may not be properly implemented or supported for EPS. So its propably better not to use it.
2. The size of the EPS figure (the bounding box) is determined from the figure's 'paperposition' property (this is also in the print(...) documentation). So, the 'paperposition' property needs to be set as desired (or, alternatively, 'outerposition' might be useful, too).
3. The position of the figure axes within the bounding box can be set with the 'position' property of the axes.

So, with this information, I modified my previous example as follows:

---------
plot (sin ([0:100]/10)); axis ([0 100 -1.1 1.1]);
fs = 18;
set (gca,'fontsize',fs);
xlabel ('x label','fontsize',fs);
ylabel ('y label','fontsize',fs);
set (gca,'position',[0.2 0.2 0.7,0.7]); % set bottom-left position, width and height of figure relative to bounding box (=window box)
set (gcf,'paperposition',[0 0 3 2]); % paperposition is used to determine size of figure in the file
print ('testy2.eps','-depsc');
---------

This does what I need. Maybe this is useful to others, so I thought I'd share it. However, I could not find an explanation of the 'paperposition' property in the manual. I had to guess (which was not very difficult), and it would be nice if it would be included in the manual.

Matthias

reply via email to

[Prev in Thread] Current Thread [Next in Thread]