What handle graphics objects have an empty 'Children' property in MATLAB R2014b?

8 views (last 30 days)
In MATLAB R2014a, I could access the individual children of a legend using the following command:
get(legendHandle,'Children')
When I execute the same comamnd in MALTAB R2014b, I get an empty array. Why is this so? What other graphics objects exhibit similar behavior?

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 28 Aug 2014
In R2014a and earlier, chart objects, legends, and colorbars contain handles to underlying objects in their Children properties. For example, a scatter series contains patch objects in its Children property. Changing property values of the patch object changes the appearance of the scatter series.
Starting in R2014b, these objects do not contain handles to underlying objects in their Children properties. To customize the graph, use properties of the actual object.
These are the affected objects:
  • Colorbar
  • Legend
  • Area
  • Bar series
  • Contour
  • Errorbar series
  • Scatter series
  • Stair
  • Stem series
  • Quiver series
  2 Comments
Walter Roberson
Walter Roberson on 25 Nov 2015
Michael, those things are gone and there is no viable work-around. The representation is completely different now.
Mathworks has been adding additional properties to allow more of these items to be controlled; the flexibility of R2015b is improved relative to R2015a which in turn was more flexible than R2014b.
You know how to work the system. If FaceAlpha does not show up correctly in legends then open a technical support case on the topic.
Walter Roberson
Walter Roberson on 7 Nov 2016
In HG2, contour creates matlab.graphics.chart.primitive.Contour which is built-in (cannot see the generating code).
There is an EdgePrims property which is an array of class matlab.graphics.primitive.world.LineStrip which contain information about the individual contour lines that are drawn. These are not line() objects such as are used by plot. You can change their color and specular coefficients and color diffusion. There is a StripData property that looks like it might be indices into the VertexData property so possibly you can access the coordinates of the lines (but that was always possible by decoding the contour matrix.) You can set the LineStrip visible or not. But they are not objects that you can legend() -- the contour plot as a whole has a legend but not the lines on the contour.

Sign in to comment.

More Answers (1)

Johannes Korsawe
Johannes Korsawe on 26 Jan 2015
And how to make filled contours semi-transparent? Contour object can either be filled or not, but there is no such thing as FaceAlpha.

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Products


Release

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!