指定した Axes 上に表示されている Legend オブジェクトのハンドルを取得することはできますか?
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 9 de Ag. de 2017
Respondida: MathWorks Support Team
el 9 de Ag. de 2017
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')

Respuesta aceptada
MathWorks Support Team
el 9 de Ag. de 2017
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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Legend en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!