マウスで選択した位置​に近い凡例を表示させる方法

조회 수: 6 (최근 30일)
FK
FK 2022년 7월 8일
댓글: FK 2022년 7월 11일
1つのfigure内に多数のラインプロットをする場合、凡例が多くなりすぎてしまいます。
そのため、凡例を知りたいプロット上をマウスで選択し、マウスに最も近いラインプロットの凡例を
表示させる方法が知りたいです。
下記回答集を参考にしていますが、データではなく、凡例にする方法が見つかりません。宜しくお願いします。

채택된 답변

交感神経優位なあかべぇ
プロット上をクリックするだけで、凡例を表示させたいのであれば、plotのプロパティであるButtonDownFcnを使用して、凡例表示の処理を実行させるのが容易だと思います。
ButtonDownFcnを利用した凡例表示の例を下記に記載しました。(.mファイルに貼り付けて.mファイル上から実行すれば動くはずです。)
% グラフ表示
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
hp = plot(x,y1,x,y2,'ButtonDownFcn',@(hplot, event) DispLegend(hplot));
hp(1).DisplayName = 'sin';
hp(2).DisplayName = 'cos';
legend();
function DispLegend(hplot)
% 凡例のテキストを削除
htext = findobj(hplot.Parent, 'Type', 'text');
delete(htext);
% マウスの現在値の取得
Cp = hplot.Parent.CurrentPoint;
Xp = Cp(2,1);
Yp = Cp(2,2);
% 凡例テキストの挿入
text(Xp,Yp,['\leftarrow', hplot.DisplayName],'Clipping','off');
end
  댓글 수: 1
FK
FK 2022년 7월 11일
交感神経優位なあかべぇ様
ご回答有難うございました。ButtonDownFcnを使用するのですね。
頂いたサンプルプログラムが大変参考になりました。
この度は有難うございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

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

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!