私はmatlabでいくつかの図を作成し、「編集 - >図のコピー」を使用して「情報を保持する(可能な場合はメタファイル)」を設定してエクスポートします。これを Word 2010 にインポートします。
次の画像は印象を与えます。左が 400% ズームの Word、右が 400% ズームの PDF です。点線が直線などになることがはっきりとわかります。どうすればこれを回避できますか?
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 のスクリーンショットを撮ると、次のようになります。
ご覧のとおり、詳細はほぼすべて揃っています。
関数を使用してprint
、Figure をさまざまな形式にエクスポートできます。EPS または TIFF で良い結果が得られるはずです。高品質の図が必要な場合は、「編集 -> 図のコピー」は使用しません。
ここのコメントを使用して、独自のアプローチを作成しました (また、次の助けを借りて: 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)