Code covered by the BSD License  

Highlights from
Scrollsubplot

4.83333

4.8 | 6 ratings Rate this file 39 Downloads (last 30 days) File Size: 32.5 KB File ID: #7730
image thumbnail

Scrollsubplot

by

 

26 May 2005 (Updated )

scrollsubplot(n,m,p) p<0 and p>nm, Extends subplot to infinite canvas ...

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information
Description

SCROLLSUBPLOT Create axes in tiled positions.

SCOLLSUBPLOT(m,n,p), breaks the Figure window into
an m-by-n matrix of small axes, selects the p-th axes for the current plot, and returns the axis handle. The axes are counted along the top row of the Figure window, then the second row, etc. For example,

    SCROLLSUBPLOT(3,1,-1), PLOT(income)
    SCROLLSUBPLOT(3,1,1), PLOT(declared_income)
    SCROLLSUBPLOT(3,1,2), PLOT(tax)
    SCROLLSUBPLOT(3,1,3), PLOT(net_income)
    SCROLLSUBPLOT(3,1,4), PLOT(the_little_extra)

plots declared_income on the top third of the window, tax in the middle, and the net_income in the bottom third. Above the top of the figure income is ploted and below the lower edge
the_little_extra is to be found. To navigate there is a slider along the right figure edge.
    
SCROLLSUBPLOT now also work with less regular subplot-layouts:
 
    axs3(1) = scrollsubplot(3,3,1);
    axs3(2) = scrollsubplot(3,3,3);
    axs3(3) = scrollsubplot(3,3,[4,7]);
    axs3(4) = scrollsubplot(3,3,5);
    axs3(5) = scrollsubplot(3,3,[3,6]);
    axs3(6) = scrollsubplot(3,3,10);
    axs3(7) = scrollsubplot(3,3,[8,9,11,12]);
    axs3(8) = scrollsubplot(3,3,[13,14,15);
    for i1 = 1:8,
      if ishandle(axs3(i1))
        axes(axs3(i1))
        imagesc(randn(2+3*i1))
      end
    end

The function works well for regular grids where m,n is constant for all p. When m,n varies there is no guaranti that the steps of the slider is nicely adjusted to the sizes of the subplots.

SCROLLSUBPLOT now also works with mouse-wheel scroll.

Differences with SUBPLOT: SCROLLSUBPLOT requires 3 input arguments, no compatibility with subplot(323), no handle as input. Further PERC_OFFSET_L is decreased from 2*0.09 to 0.07
and PERC_OFFSET_R is decreased from 2*0.045 to 0.085. This leaves less space for titles and labels, but give a plaid grid of subplots even outside the visible figure area.

Bug/feature when the slider is shifted from its initial position and then extra subplots is added, they get mis-positioned.

See also SCROLL, SUBPLOT,

Acknowledgements

Scrolling Plot Demo and Scrolling Figure Demo inspired this file.

MATLAB release MATLAB 6.5.1 (R13SP1)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (10)
26 Jul 2014 Shai Asher

Hi,
i found that if i have a several lines worth of xlabel, the scrolling doesn't account for that and the lower lines are cut off of the figure.
any got any ideas?

18 Jun 2014 Jesse

Please help. I get this error when I try to plot something like subplot(1,2,[3,4]):

Operands to the || and && operators must be convertible to logical scalar values.
Error in scrollsubplot (line 235)
if ( nrows*ncols < thisPlot || thisPlot < 1 )

08 May 2014 Valerio Biscione

Fantastic, worked without any problem!

19 Jun 2013 Jakob

Hi,

nice tool, could you make it working with asymmetrical subplots like for example scrollsubplot(2,2,[1 3])?

Would be cool

17 Jun 2012 HaveF  
19 Apr 2011 Alexander Brodsky

can you add ability of mouse scrolling ?
Thanks for useful feature

01 May 2009 Carlos Martinez-Ortiz  
20 Nov 2007 David Escot

Perfect!!

18 Nov 2006 Telmo Amaral

This function did precisely what I needed in the easiest possible way: just had to replace all the calls to subplot with calls to scrollsubplot. Particularly liked the fact that page-up/down scroll the defined number of rows, whereas arrow-up/down scroll only one row at a time - very intuitive.

11 Oct 2005 reno renovic

I may be helpfull if you would add a little example how to use this m.file

Updates
03 Feb 2014

Now handles irregular tiling of subplots, and responds to mouse-wheel scrolling.

Contact us