How to group xlines in legend

조회 수: 10 (최근 30일)
Aya
Aya 2023년 10월 18일
답변: Star Strider 2023년 10월 18일
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.

채택된 답변

Star Strider
Star Strider 2023년 10월 18일
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');
.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Graphics Performance에 대해 자세히 알아보기

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by