Graphic properties not working
Ben Abbott
bpabbott at mac.com
Tue Mar 24 06:41:41 CDT 2009
On Mar 24, 2009, at 3:29 AM, Marco Caliari wrote:
> On Mon, 23 Mar 2009, Ben Abbott wrote:
>
>>
>> On Monday, March 23, 2009, at 10:37AM, "Marco Caliari" <marco.caliari at univr.it
>> > wrote:
>>> Dear maintainers,
>>>
>>> I noticed that some (all?) graphic properties do not work anymore in
>>> Octave 3.1.54
>>>
>>> octave:1> contourf(peaks,'EdgeColor','blue')
>>> error: set: unknown property "EdgeColor"
>>> error: called from:
>>> error: /usr/local/share/octave/3.1.54/m/plot/__contour__.m at
>>> line 191, column 5
>>> error: /usr/local/share/octave/3.1.54/m/plot/contourf.m at line
>>> 71, column 5
>>>
>>> I don't know if it is a bug or a syntax change.
>>>
>>> Best regards,
>>>
>>> Marco
>>
>> Using matlab, your example does work. However, Matlab's hggroup has
>> no "EdgeColor" property. It appears that Matlab is setting the
>> "LineColor" property when the "EdgeColor" property is specified.
>>
>> If you do that directly, you'll get what you desire.
>>
>> contourf (peaks, "linecolor", "blue")
>
> Thanks, it works. I suspected a regression since
> contourf(peaks,'EdgeColor','blue') works in Octave 3.0.x and
> surface(peaks,'EdgeColor','blue') works in Octave 3.1.54. Anyway,
> now I have the following (always reproducibile)
>
> octave:1> surface(peaks,'EdgeColor','blue') # it works
>
> BUT
>
> octave:2> contourf(peaks,'EdgeColor','blue') # it does not work, as
> expected
> error: set: unknown property "EdgeColor"
> error: called from:
> error: /usr/local/share/octave/3.1.54/m/plot/__contour__.m at line
> 191, column 5
> error: /usr/local/share/octave/3.1.54/m/plot/contourf.m at line
> 71, column 5
> octave:2> surface(peaks,'EdgeColor','blue') # it does not work
> anymore!!!
> error: gnuplot (as of v4.2) only supports 2D filled patches
> error: called from:
> error: /usr/local/share/octave/3.1.54/m/plot/__go_draw_axes__.m at
> line 543, column 4
> error: /usr/local/share/octave/3.1.54/m/plot/__go_draw_figure__.m
> at line 90, column 3
> error: /usr/local/share/octave/3.1.54/m/plot/gnuplot_drawnow.m at
> line 69, column 5
>
> That is, if you call surface(peaks,'EdgeColor','blue') after a
> contourf(peaks,'EdgeColor','blue'), the former does not work anymore.
>
> Best regards,
>
> Marco
I'm not sure this is a regression. There is no "EdgeColor" property
for Matlab's hggroup, and my memory is that Octave's hggroup is a
rather recent addition, and was not used in 3.0.3 (?).
Mathworks appears to be doing something special. How does Matlab
handle a situation like below?
set (hg, "SomeProperty", SomeValue)
If the property "SomeProperty" does not exst for the hggroup with
handle hg, does Matlab do something like ...
set (findobj (hg, "-property", "SomeProperty"), "SomeProperty",
SomeValue)
... or is the current example unique?
I haven't look into this myself, and don't have the needed knowledge
of c++ and the sources involved to produce a proper changeset.
Marco/someone else, can you look at this?
Ben
More information about the Bug-octave
mailing list