指定した Axes 上に表示されている Legend オブジェクトのハンドルを取得することはできますか?
15 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2017 年 8 月 9 日
回答済み: MathWorks Support Team
2017 年 8 月 9 日
subplot 関数を使用して、Figure 上に複数の座標軸(Axes オブジェクト)を作成しています。
それぞれに Axes には、凡例(Legend オブジェクト)を表示していますが、指定した Axes の上にある Legend オブジェクトのハンドルを取得する方法を教えてください。
figure
ax1 = subplot(211);
h11 = plot(1:10,rand(1,10),'DisplayName','A1Data1');
hold on
h12 = plot(1:10,rand(1,10),'DisplayName','A1Data2');
legend('show')
ax2 = subplot(212);
h21 = plot(1:10,rand(1,10),'DisplayName','A2Data1');
hold on
h22 = plot(1:10,rand(1,10),'DisplayName','A2Data2');
legend('show')

採用された回答
MathWorks Support Team
2017 年 8 月 9 日
Legend オブジェクトは、Figure の子オブジェクトとして配置されているため、 直接的に Axes から対応する Legend を取得することはできません。
代替案として、予め、Legend の UserData プロパティに Axes のハンドルを格納する方法が考えられます。
figure
ax1 = subplot(211);
h11 = plot(1:10,rand(1,10),'DisplayName','A1Data1');
hold on
h12 = plot(1:10,rand(1,10),'DisplayName','A1Data2');
L_h1 = legend('show'); % 凡例表示
L_h1.UserData = ax1; % UserData として Axes ハンドルを登録
% Axes ハンドルから Legend オブジェクトを検出
findobj(gcf,'Type','Legend','UserData',ax1)
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!