Figure 内に複数ある座標軸の​うち、ある特定の座標​軸のみを印刷または保​存することはできます​か?

조회 수: 5 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2017년 1월 31일
답변: MathWorks Support Team 2017년 1월 31일
Figure 内に複数ある座標軸のうち、ある特定の座標軸のみを印刷または保存する方法を教えてください。

채택된 답변

MathWorks Support Team
MathWorks Support Team 2017년 1월 31일
Figure から、ある特定の座標軸のみを印刷する直接的な機能は MATLAB では提供されていません。
MATLAB の印刷(ファイル出力)機能は、Axes 単位ではなく、Figure 対象としています。そのため、1つの座標軸だけを指定することができません。
代替案として、copyobj 関数を使用して、特定の Axes のみをコピーし、新しい Figuer に配置し、それを印刷する方法があります。
% 複数座標軸をもつ Figure の作成
fig1 = figure;
xx = 0:pi/10:2*pi;
sp(1) = subplot(3,1,1);
plot(xx, 10*sin(xx));
sp(2) = subplot(3,1,2);
plot(xx, cos(xx));
sp(3) = subplot(3,1,3);
plot(xx, tan(xx));
% 1 番目の Axes に対する凡例の作成
hLeg = legend(sp(1),'Signal')
% 印刷用に新たな Figure を作成
fig2 = figure('visible','off');
% Axes のコピー
newax = copyobj(sp(1),fig2);
% 凡例のコピー
newLeg = copyobj(hLeg,fig2);
% subplot で描画していたサイズでなく、デフォルトのAxes サイズに調整したい場合は
% 以下のように Position プロパティを調整
set(newax, 'units', 'normalized', 'position', [0.13 0.11 0.775 0.815]);
% 印刷/保存
print(fig2) % 印刷
hgsave(fig2,'myfig') % .fig として保存
close(fig2) % Figure を閉じる
注意点として、copyobj 関数では、カラーバーなど一部の機能はコピーされません。詳細については、下記コマンドより、copyobj 関数のヘルプドキュメントをご覧ください。
 
>> doc copyobj

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 2 次元および 3 次元プロット에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

제품

Community Treasure Hunt

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

Start Hunting!