2

Matlabでプロットを作成しましたが、残念ながら、プロットの側面がプロットウィンドウによって切り取られています。プロットを作成するために使用したコードは次のとおりです。

% create a plot with dots and with bold sides
point = num(:, 1);
depth = num(:, 2);
hfig = plot(point, depth, '-s', 'Color', 'k', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k', 'MarkerSize', 10);

% make the outside of the graph bold
set(gca, 'LineWidth', axis_size);
set(gca,'FontSize', ticksize, 'FontName', fontname);
set(gca, 'Position', [0.2 0.2 0.8 0.4])
xlabel('Point Number')
ylabel('Depth (cm)')

出力は次のとおりです。

カットオフ画像

プロットの側面がどのように切り取られているかに注目してください。あるいは、これが私が達成したいことを示す写真です:

達成したいこと

を呼び出さずにプロットを作成しset(gca, 'Position', [0.2 0.2 0.8 0.4])、ウィンドウのサイズを変更してプロットのサイズを変更しました。

しかし、これをコードで行うにはどうすればよいですか?また、プロットを同じサイズのPNGファイルとして保存できるようにしたいです。いろいろな機能の組み合わせで遊んでいて、set()欲しいものが出せませんでした。

4

3 に答える 3

5

OuterPositionプロットのを設定してみてください。

set(gca,'OuterPosition',[0.2 0.2 0.8 0.4]);

以下の画像は、2つの違いを示しています。

ここに画像の説明を入力してください

関連するMathWorksヘルプページは次のとおりです

于 2012-05-23T15:33:23.080 に答える
1

Andreyが最も簡単な答えですが、代わりに(そして長期的には)ファイル交換に移動してsubaxis.mをダウンロードできます。これは、subplotに置き換わるもので、単軸プロットにも最適です(LeftMarginやRightMarginなどのプロパティを定義できます。 PaddingTopおよびPaddingBottom)

http://www.mathworks.com/matlabcentral/fileexchange/3696-subaxis-subplot

于 2012-05-24T05:35:38.313 に答える
0

次のドキュメント(印刷時に正しい寸法のMatlabを使用して図を作成する方法)は、プロットのサイズを適切に変更するために使用できるサンプルコードを提供します。

次のコードが使用されました。

point = num(:, 1);
depth = num(:, 2);

hfig = plot(point, depth, '-s', 'Color', 'k', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k', 'MarkerSize', 10);
set(gca, 'LineWidth', axis_size);
set(gca,'FontSize', ticksize, 'FontName', fontname);
set(gcf,'PaperUnits','centimeters')
xSize = 30; ySize = 5;
xLeft = (21-xSize)/2; yTop = (30-ySize)/2;
set(gcf,'PaperPosition',[xLeft yTop xSize ySize])
set(gcf,'Position',[300 600 xSize*50 ySize*50])

xlabel('Point Number');
ylabel('Depth (cm)');  

これが結果の写真です。これは、上記の質問で投稿したものと似ています。これがモニターのサイズや画面の解像度に依存しているかどうかはわかりません。

期待される結果

于 2012-05-24T00:38:16.130 に答える