
For example, if I do not use drawnow after plotting the line, I am unable to access the line.MarkerHandle properties. What I’ve gathered so far is that this may be related the necessity of using the drawnow command in between plotting the line and getting the line marker handles. to essentially the plot before I edit any of the color and alpha properties (still not working for vector outputs). bmp format, yes, but when I change the resolution the output changes from my pretty figure with transparency, etc. Next week I will describe how we can customize plot line markers in ways that you never thought possible.
#MATLAB 2009 GRIDALPHA UPDATE#
Of course, we could always update the line’s fully-documented MarkerSize, MarkerFaceColor and MarkerEdgeColor properties, in addition to the undocumented customizations above. As far as I know, this cannot be set separately for each marker – they are all updated together. This is important for transparent lines, since it controls the brightness of the markers: “on top” (in front) they appear brighter. Therefore, the markers are only visible when the surrounding pixels are less opaque (i.e., lighter).Īs a related customization, we can control whether the markers appear “on top of” (in front of) the line or “beneath” it by updating the Edge.Layer property from ‘middle’ to ‘front’ (there is also ‘back’, but I guess you won’t typically use it). Since the lines are wide, the markers are surrounded by pixels of the same color. This is because the markers have the same color as the lines in today’s example. Note how the markers are clearly seen in the transparent lines but not the opaque ones.


(Type " warning off MATLAB:gui:array:InvalidArrayShape" to suppress this warning.) Markers

Warning: Error creating or updating LineStrip So, for example, let’s modify the middle (30%-transparent) red line to something more colorful: (the data values themselves are kept as a 3xN matrix of single values in Edge.VertexData).

Then we can modify Edge.ColorData from being a 4×1 array of uint8 (value of 255 corresponding to a color value of 1.0), to being a 4xN matrix, where N is the number of data points specified for the line, such that each data point along the line will get its own unique RGB or RGBA value. The tricky part is to change the Edge.ColorBinding value from its default value of ‘object’ to ‘interpolated’ (there are also ‘discrete’ and ‘none’). If anyone finds a documented reference anywhere, please let me know – perhaps I simply missed it.
#MATLAB 2009 GRIDALPHA PATCH#
In some rare cases (e.g., for patch objects) Matlab has separate Alpha properties that are fully documented, but in any case nowhere have I seen documented that we can directly set the alpha value in the color property, especially for objects (such as plot lines) that do not officially support transparency. This Alpha element is not documented anywhere as being acceptable, but appears to be supported almost universally in HG2 wherever a color element can be specified. So, for example, means a 70%-transparent red. In other words, color in HG2 can still be specified as an RGB triplet (e.g., to symbolize bright red), but also via a 4-element quadruplet RGBA, where the 4th element (Alpha) signifies the opacity level (0.0=fully transparent, 0.5=semi-transparent, 1.0=opaque). In the past few weeks, I discussed the new HG2 axes Backdrop and Baseline properties with their associated ability to specify the transparency level using a fourth (undocumented) element in their Color.
