octave-maintainers
[Top][All Lists]
Advanced

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

Add base value support to bars


From: Michael Goffioul
Subject: Add base value support to bars
Date: Tue, 18 Dec 2007 21:51:55 +0100

The following patch adds support for a base value in bar functions. Note
that I'm not sure about the expected behavior in case of stacked bars, as
I don't have Matlab under the hand to check it.

Michael.

Index: scripts/plot/__bar__.m
===================================================================
RCS file: /cvs/octave/scripts/plot/__bar__.m,v
retrieving revision 1.14
diff -c -r1.14 __bar__.m
*** scripts/plot/__bar__.m      29 Nov 2007 16:44:45 -0000      1.14
--- scripts/plot/__bar__.m      18 Dec 2007 20:49:00 -0000
***************
*** 27,32 ****
--- 27,33 ----
    ## Slightly smaller than 0.8 to avoid clipping issue in gnuplot 4.0
    width = 0.8 - 10 * eps;
    group = true;
+   bv = 0;

    if (nargin < 3)
      print_usage ();
***************
*** 87,92 ****
--- 88,97 ----
        width = varargin{idx++};
        elseif (idx == nargin - 2)
        newargs = [newargs,varargin(idx++)];
+       elseif (isstr (varargin{idx}) && strcmp (tolower
(varargin{idx}), "basevalue") &&
+           isscalar (varargin{idx+1}))
+         bv = varargin{idx+1};
+         idx += 2;
        else
        newargs = [newargs,varargin(idx:idx+1)];
        idx += 2;
***************
*** 122,132 ****
      xb(2:4:4*ylen,:) += offset;
      xb(3:4:4*ylen,:) += offset;
      xb(4:4:4*ylen,:) += offset;
!     y0 = zeros (size (y));
      y1 = y;
    else
      y1 = cumsum(y,2);
!     y0 = [zeros(ylen,1), y1(:,1:end-1)];
    endif

    yb = zeros (4*ylen, ycols);
--- 127,137 ----
      xb(2:4:4*ylen,:) += offset;
      xb(3:4:4*ylen,:) += offset;
      xb(4:4:4*ylen,:) += offset;
!     y0 = zeros (size (y)) + bv;
      y1 = y;
    else
      y1 = cumsum(y,2);
!     y0 = [zeros(ylen,1)+bv, y1(:,1:end-1)];
    endif

    yb = zeros (4*ylen, ycols);
***************
*** 145,151 ****
        newplot ();

        tmp = __bars__ (h, vertical, x, y, xb, yb, width, group,
!                     have_line_spec, newargs{:});
        if (nargout == 1)
        varargout{1} = tmp;
        endif
--- 150,156 ----
        newplot ();

        tmp = __bars__ (h, vertical, x, y, xb, yb, width, group,
!                     have_line_spec, bv, newargs{:});
        if (nargout == 1)
        varargout{1} = tmp;
        endif
Index: scripts/plot/__bars__.m
===================================================================
RCS file: /cvs/octave/scripts/plot/__bars__.m,v
retrieving revision 1.3
diff -c -r1.3 __bars__.m
*** scripts/plot/__bars__.m     28 Nov 2007 02:32:42 -0000      1.3
--- scripts/plot/__bars__.m     18 Dec 2007 20:49:00 -0000
***************
*** 20,26 ****

  ## Author: jwe

! function tmp = __bars__ (h, vertical, x, y, xb, yb, width, group,
have_color_spec, varargin)

    ycols = columns (y);
    clim = get (h, "clim");
--- 20,26 ----

  ## Author: jwe

! function tmp = __bars__ (h, vertical, x, y, xb, yb, width, group,
have_color_spec, base_value, varargin)

    ycols = columns (y);
    clim = get (h, "clim");


reply via email to

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