axis tight fails for plots with more than one line
Garrett Euler
ggeuler at seismo.wustl.edu
Fri Jun 5 13:28:23 CDT 2009
Bug report for Octave 3.2.0 configured for x86_64-unknown-linux-gnu
Description:
-----------
* Using the command "axis tight" fails on plots with multiple lines.
This is with Octave 3.2.0-rc7 (I believe this is the official
release too). I have included a short test and a fix for the
__get_tight_lims__ function in axis.m.
__get_tight_lims__ (had it worked) also returned incorrect limits
for plots with multiple lines (it used min(max()) instead of
max(max()) ). This was fixed here too.
Repeat-By:
---------
* octave:1> plot(1:10)
octave:2> hold on
octave:3> plot(1:10)
octave:4> axis tight
error: cellfun: expecting all values to be scalars for UniformOutput = true
error: evaluating argument list element number 1
error: evaluating argument list element number 1
error: called from:
error: /usr/local/share/octave/3.2.0/m/plot/axis.m at line 301, column 15
error: evaluating argument list element number 7
error: evaluating argument list element number 1
error: /usr/local/share/octave/3.2.0/m/plot/axis.m at line 313, column 3
error: /usr/local/share/octave/3.2.0/m/plot/axis.m at line 200, column 1
octave:4>
Fix:
---
* m/plot/axis.m: Fixed axis tight handling of plots with more
than one line.
--- /usr/local/share/octave/3.2.0/m/plot/axis-orig.m 2009-06-05 08:46:09.000000000 -0500
+++ /usr/local/share/octave/3.2.0/m/plot/axis.m 2009-06-05 09:41:45.000000000 -0500
@@ -298,8 +298,8 @@ function lims = __get_tight_lims__ (ca,
else
data = get (kids, strcat (ax, "data"));
if (iscell (data))
- lims(1) = min (cellfun (@min, data)(:));
- lims(2) = min (cellfun (@max, data)(:));
+ lims = [min(cell2mat(cellfun(@min,data,'UniformOutput',false))) ...
+ max(cell2mat(cellfun(@max,data,'UniformOutput',false)))];
else
lims = [min(data(:)), max(data(:))];
endif
More information about the Bug-octave
mailing list