2

私はmatlabでいくつかの図を作成し、「編集 - >図のコピー」を使用して「情報を保持する(可能な場合はメタファイル)」を設定してエクスポートします。これを Word 2010 にインポートします。

次の画像は印象を与えます。左が 400% ズームの Word、右が 400% ズームの PDF です。点線が直線などになることがはっきりとわかります。どうすればこれを回避できますか?

ここに画像の説明を入力

4

3 に答える 3

2

am304 が与えた答えを少し拡張します - 私は以下をテストしました:

figure
% create a plot with some fine detail:
plot(sin(1./linspace(0.02, 1, 1000)));
% set the "paper size" of the figure (not the size on screen) to 30x20 cm:
set(gcf, 'PaperUnits', 'centimeters', 'PaperPosition', [0 0 30 20]);
% "print" to png with a resolution of 300 dpi
print('-dpng', 'myplot.png', '-r300');

これにより、次の画像がディスクに保存されます (詳細を表示するためにトリミングされています)。 ここに画像の説明を入力

フル サイズの画像はわずか 43 kB ですが、非常に高解像度 (300 dpi) のレンダリングであるため、プロットの詳細を確認できます。

この画像を Word 文書に挿入して、pdf として保存できます。pdf のスクリーンショットを撮ると、次のようになります。

ここに画像の説明を入力

ご覧のとおり、詳細はほぼすべて揃っています。

于 2013-09-16T17:21:43.390 に答える
1

関数を使用してprint、Figure をさまざまな形式にエクスポートできます。EPS または TIFF で良い結果が得られるはずです。高品質の図が必要な場合は、「編集 -> 図のコピー」は使用しません。

于 2013-09-16T15:34:25.117 に答える
0

ここのコメントを使用して、独自のアプローチを作成しました (また、次の助けを借りて: matlab でプロットを特定のサイズに設定するには? )。だからここに私の機能があります:

function figureprint(hFig, width, height, res, filename)

%# figure size printed on paper
set(hFig, 'PaperUnits','centimeters')
set(hFig, 'PaperSize',[width height])
set(hFig, 'PaperPosition',[0 0 width height])
set(hFig, 'PaperOrientation','portrait')

%# export
print(hFig, '-dpng', res, filename)

この関数は、図を cm 単位の特定のサイズに印刷します。例えば

 figureprint(hFig, 12, 10, '-r1500', 'testPng.png')

したがって、「hFig」は、幅 12cm、高さ 10cm の *.png として保存されます。私はこれを測定しましたが、これはうまくいきます。最適化はもちろん可能です。

使用する場合

set(gca,'LooseInset', get(gca,'TightInset'))

y 値の乗算係数の指数はカットされます (大きな数がプロットされる場合) (画像を参照)。この場合、たとえば次のように値を変更する必要があります。

tight = get(gca,'TightInset');
tight(1,4) = 0.08;
set(gca,'LooseInset',tight)

ここに画像の説明を入力

于 2013-09-17T09:28:37.060 に答える