stem plot problem
Ben Abbott
bpabbott at mac.com
Fri Oct 17 20:18:43 CDT 2008
On Oct 17, 2008, at 5:51 PM, Ben Abbott wrote:
> On Friday, October 17, 2008, at 02:45PM, "John W. Eaton" <jwe at bevo.che.wisc.edu
> > wrote:
>> I'm seeing the following problem with the current development sources
>> (this is demo 7 in stem.m):
>>
>> octave:1> x = [0:10].';
>> octave:2> y = [sin(x), cos(x)];
>> octave:3> h = stem (x, y);
>> octave:4> set (h(2), "color", "g");
>> octave:5> set (h(1), "basevalue", 1)
>> error: number of rows must match (33 != 11) near line 468, column 33
>> error: called from:
>> error: /home/jwe/src/octave/scripts/plot/__go_draw_axes__.m at
>> line 468, column 24
>> error: /home/jwe/src/octave/scripts/plot/__go_draw_figure__.m at
>> line 56, column 8
>> error: /home/jwe/src/octave/scripts/plot/gnuplot_drawnow.m at
>> line 68, column 5
>>
>> The problem appears to be this concatenation at line 465 in
>> __go_draw_axes__.m:
>>
>> data{data_idx} = [xdat, ydat]';
>>
>> Again, I don't understand what is supposed to be happening, or why
>> xdat has 11 elements and ydat has 33 at this point. I could use
>> some help fixing this problem.
>>
>> jwe
>
> I don't think the problem is in __go_draw_axes__.m
>
> If the last line of that demo is removed (the one below), there is
> no error.
>
> %! set (h(1), "basevalue", -1)
>
> I inserted the lines below ahead of the error
>
> %! get(get(get (h(1),'children')(1), 'children'), 'xdata')
> %! get(get(get (h(1),'children')(1), 'children'), 'ydata')
> %! get(get(get (h(1),'children')(2), 'children'), 'xdata')
> %! get(get(get (h(1),'children')(2), 'children'), 'ydata')
>
> The 1st & 2nd produce a 1x11 vector
> The 3rd & 4th produce a 1x33 vector
>
> After examining the line that fails in __go_draw_axes__.m, it
> appears an attempt is made to plot the xdata from the 1st with the
> ydata from the 4th.
>
> I'll have to bone up on what "basevalue" is before going any deeper.
>
>
> The handle h(1) points to an hggroup. Looking at the lines of the
> group all the xdata and ydata appear to be correct. Once the set
> command gets run, I'm not sure what the sequence of events is.
>
> Ben
ok, I'm in over my head, but it appears that the problem is with
"update_props" .... and for those "in the know", the question is which
"update_props"?
In __stem__.m it is defined as ...
509 function update_props (h, d)
510 kids = get (h, "children");
511 set (kids(1), "color", get (h, "color"),
512 "linewidth", get (h, "linewidth"),
513 "linestyle", get (h, "linestyle"));
514 set (kids(2), "color", get (h, "color"),
515 "marker", get (h, "marker"),
516 "markerfacecolor", get (h, "markerfacecolor"),
517 "markersize", get (h, "markersize"));
518 endfunction
In __add_line_series__.m
52 function update_props (h, d)
53 set (get (h, "children"), "color", get (h, "color"),
54 "linewidth", get (h, "linewidth"),
55 "linestyle", get (h, "linestyle"),
56 "marker", get (h, "marker"),
57 "markerfacecolor", get (h, "markerfacecolor"),
58 "markeredgecolor", get (h, "markeredgecolor"),
59 "markersize", get (h, "markersize"),
60 "xdata", get (h, "xdata"),
61 "ydata", get (h, "ydata"),
62 "zdata", get (h, "zdata"));
63 endfunction
I suggest such after pasting the lines below into the octave console
x = [0 : 10].';
y = [sin(x), cos(x)];
h = stem (x, y);
set (h(2), "color", "g");
set (h(1), "basevalue", -1)
Which produced the following ...
octave:158> x = [0 : 10].';
octave:159> y = [sin(x), cos(x)];
octave:160> h = stem (x, y);
octave:161> set (h(2), "color", "g");
octave:162> set (h(1), "basevalue", -1)
error: invalid value for array property "ydata"
error: set: expecting argument 18 to be a property name
error: called from:
error: /Users/bpabbott/Development/mercurial/octave-3.1.51/scripts/
plot/__add_line_series__.m at line 56, column 1
error: invalid graphics handle
error: /Users/bpabbott/Development/mercurial/octave-3.1.51/scripts/
plot/__stem__.m at line 509, column 3
error: invalid graphics handle
error: /Users/bpabbott/Development/mercurial/octave-3.1.51/scripts/
plot/__stem__.m at line 479, column 2
error: invalid graphics handle
error: /Users/bpabbott/Development/mercurial/octave-3.1.51/scripts/
plot/__stem__.m at line 495, column 5
octave:162>
This is getting a bit too much for a guy on a Friday night with 3
beers behind him, so I'm off to other entertainment .... until
tomorrow ;-)
Ben
More information about the Octave-maintainers
mailing list