plot orientation feature; plot filling page

View: New views
4 Messages — Rating Filter:   Alert me  

plot orientation feature; plot filling page

by octaveUser :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I'm trying to do something simple, print a file to a certain paper size and have the plot fill the whole page. In matlab this is done in the following way: >orient tall, will fill a portrait page, >orient ladscape will flip the plot 90degrees and fill the page.  Octave prints with the plot only filling a box in the center of the page with large margins at the top and bottom. The plotting to pdf finally works great, it just seems like it would be really usefull to have the plot fill the page. I understand I have to interact with gnuplot to get this done. This is the number one feature request I have, a simple way to make a plot fill a page, and rotate the plot and have it fit the page. Was there an easy way to do this I missed. Thanks, octave is wonderful.  

Re: plot orientation feature; plot filling page

by Ben Abbott :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Nov 18, 2009, at 12:37 AM, octaveUser wrote:

> I'm trying to do something simple, print a file to a certain paper size and
> have the plot fill the whole page. In matlab this is done in the following
> way: >orient tall, will fill a portrait page, >orient ladscape will flip the
> plot 90degrees and fill the page.  Octave prints with the plot only filling
> a box in the center of the page with large margins at the top and bottom.
> The plotting to pdf finally works great, it just seems like it would be
> really usefull to have the plot fill the page. I understand I have to
> interact with gnuplot to get this done. This is the number one feature
> request I have, a simple way to make a plot fill a page, and rotate the plot
> and have it fit the page. Was there an easy way to do this I missed. Thanks,
> octave is wonderful.  

Currently Octave's orient() function does not recognize the "tall" option, and the "landscape", "portrait" options do not flip the "papersize" (1x2) vector. So there are both a missing feature and a bug.

To do what you want,

# equivalent to "orient tall"
papersize = get (gcf, "papersize"); # presently the paper units must be inches
border = 0.25;
set (gcf, "paperposition", [border, border, (papersize - 2*border)])

# To change orientation
orientation = get (gcf, "paperorientation");
papersize = get (gcf, "papersize");
paperposition = get (gcf, "paperposition");
set (gcf, "paperposition", paperposition([2, 1, 4, 3]);
set (gcf, "papersize", papersize ([2, 1]);
set (gcf, "paperorientation", setdiff ({"landscape", "portrait"}, orientation);

I'll prepare a changeset today.

Ben

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

Re: plot orientation feature; plot filling page

by KeithG :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I am trying to do the same thing and am a bit confused. I have the latest windows package 3.2.3. I have updated a couple scripts based on some bug reports I have found. Specifically, I have grabbed a later plotyy.m from the 3.3.50 release and that fixes the plotyy bug where it would resize the plots if the axes were scaled. I have downloaded the latest orient.m that has the "orient tall" feature. So, at this stage, I am back where I was with the 3.2.0 version in that I can generate a PDF plotyy, but I would still like to expand the graph to fit the PDF page. As it is now, I get a landscape page orientation in the PDF and the vertical information fills the 8.5" height dimension of the page reasonably, but the 11" width dimension is not filled and the aspect ratio looks more like a portrait orientation of the graph placed on the landscape paper orientation. Is there a simple way to adjust this that I am not getting?

I create the graph using something similar to this:

plotyy(x,y1,x,y2);
orient landscape
print -landscape test_plot.pdf

The gnuplot looks fine but the pdf does not fill the page very well.

Keith

Ben Abbott wrote:
On Nov 18, 2009, at 12:37 AM, octaveUser wrote:

> I'm trying to do something simple, print a file to a certain paper size and
> have the plot fill the whole page. In matlab this is done in the following
> way: >orient tall, will fill a portrait page, >orient ladscape will flip the
> plot 90degrees and fill the page.  Octave prints with the plot only filling
> a box in the center of the page with large margins at the top and bottom.
> The plotting to pdf finally works great, it just seems like it would be
> really usefull to have the plot fill the page. I understand I have to
> interact with gnuplot to get this done. This is the number one feature
> request I have, a simple way to make a plot fill a page, and rotate the plot
> and have it fit the page. Was there an easy way to do this I missed. Thanks,
> octave is wonderful.  

Currently Octave's orient() function does not recognize the "tall" option, and the "landscape", "portrait" options do not flip the "papersize" (1x2) vector. So there are both a missing feature and a bug.

To do what you want,

# equivalent to "orient tall"
papersize = get (gcf, "papersize"); # presently the paper units must be inches
border = 0.25;
set (gcf, "paperposition", [border, border, (papersize - 2*border)])

# To change orientation
orientation = get (gcf, "paperorientation");
papersize = get (gcf, "papersize");
paperposition = get (gcf, "paperposition");
set (gcf, "paperposition", paperposition([2, 1, 4, 3]);
set (gcf, "papersize", papersize ([2, 1]);
set (gcf, "paperorientation", setdiff ({"landscape", "portrait"}, orientation);

I'll prepare a changeset today.

Ben

_______________________________________________
Help-octave mailing list
Help-octave@octave.org
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

Re: plot orientation feature; plot filling page

by Ben Abbott :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Feb 7, 2010, at 12:43 AM, KeithG wrote:

> I am trying to do the same thing and am a bit confused. I have the latest
> windows package 3.2.3. I have updated a couple scripts based on some bug
> reports I have found. Specifically, I have grabbed a later plotyy.m from the
> 3.3.50 release and that fixes the plotyy bug where it would resize the plots
> if the axes were scaled. I have downloaded the latest orient.m that has the
> "orient tall" feature. So, at this stage, I am back where I was with the
> 3.2.0 version in that I can generate a PDF plotyy, but I would still like to
> expand the graph to fit the PDF page. As it is now, I get a landscape page
> orientation in the PDF and the vertical information fills the 8.5" height
> dimension of the page reasonably, but the 11" width dimension is not filled
> and the aspect ratio looks more like a portrait orientation of the graph
> placed on the landscape paper orientation. Is there a simple way to adjust
> this that I am not getting?
>
> I create the graph using something similar to this:
>
> plotyy(x,y1,x,y2);
> orient landscape
> print -landscape test_plot.pdf
>
> The gnuplot looks fine but the pdf does not fill the page very well.
>
> Keith

If you're up to downloading another script from 3.3.50, grab orient.m and try ...

        close all
        figure(1)
        plotyy(x,y1,x,y2);
        orient tall
        orient landscape
        print test_plot.pdf

Otherwise, you can modify the figure's paperposition property so that the plot fills the page.

Ben

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave