How to group xlines in legend

11 visualizaciones (últimos 30 días)
Aya
Aya el 18 de Oct. de 2023
Respondida: Star Strider el 18 de Oct. de 2023
I'm trying to plot various vertical lines on my graph. They all represent aspects of the same feature and only need one entry in the legend. This is the code I wrote (that seemed to work a few days ago):
ax = axes
p = xline(ax, [1 2 3], "g-");
hg = hggroup;
set(p, "Parent", hg);
hg.DisplayName = "My Data";
set(get(get(hg,'Annotation'),'LegendInformation'),'IconDisplayStyle','on');
However, when I run this now I get an error
"Error using matlab.graphics.chart.decoration.ConstantLine/setParentImpl - Parent must be a Cartesian axes."
I've read that ConstantLine objects like xline() can't have a Group object as a parent, unike plot(). My code works if I use plot(), but I'm not sure how to effectivly implement vertical lines using that function.

Respuesta aceptada

Star Strider
Star Strider el 18 de Oct. de 2023
Using plot to plot the vertical lines is straightforward —
ax = axes;
% p = xline(ax, [1 2 3], "g-");
p = plot([1;1]*[1 2 3], ([1; 1; 1]*ylim).', 'g-');
hg = hggroup;
set(p, "Parent", hg);
hg.DisplayName = "My Data";
set(get(get(hg,'Annotation'),'LegendInformation'),'IconDisplayStyle','on');
.

Más respuestas (0)

Categorías

Más información sobre Graphics Performance en Help Center y File Exchange.

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by