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

3 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 31 Jan 2017
Figure 内に複数ある座標軸のうち、ある特定の座標軸のみを印刷または保存する方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 31 Jan 2017
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

More Answers (0)

Categories

Find more on 2 次元および 3 次元プロット in Help Center and File Exchange

Tags

No tags entered yet.

Products

Community Treasure Hunt

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

Start Hunting!