web-dev-qa-db-ja.com

出版物用のグラフィックのエクスポート:プロット要素で一貫した線の太さを実現する方法は?

Mmaを使用して出版品質のグラフィックを作成することは、数十年前にさかのぼるブラックアートのようです。近年、状況は大幅に改善されていますが、ファイルにエクスポートするときに一貫した結果を得るのは依然として困難です。最終結果の見た目はフォーマットに多少依存しているようです(私の経験ではEPSが最も効果的です)。

多くの場合、フレームと目盛りの線はEPSファイルでかすかになりすぎてしまい、FrameStyle->AbsoluteThickness[2]のようなことをしようとすると、太すぎる線を簡単に取得できます。したがって、私の現在のアプローチでは、5つのパラメーター(3つの線の太さ(FrameStyle、AxesStyle、およびPlotStyle)、ImageSize、およびBaseStyleのFontSize)を取得し、エクスポートされたプロットが許容できるようになるまでランダムに調整します。これはやや不十分で時間がかかります。

バランスの取れた見栄えの良いプロットを達成するために従うべきより良い方法および/または標準的な処方箋はありますか?

編集:ここに1つの例があります。画面上では見栄えがしますが(スクリーンショットを参照)、EPSにエクスポートすると、おそらく2つのことがわかります。(a)EPSフォントの埋め込みにバグがあります。私にとって、図の中のイプシロンは、削除しない限り正しく埋め込まれません。 FontWeight->Normalディレクティブ。 (b)フレーム/目盛りの線は薄い灰色で、太さは1ピクセルです。この図を縮小したい場合(たとえば、挿入図として配置する場合)、品質が損なわれます。ただし、AbsoluteThickness[2]の使用は見栄えが悪いため、ImageSizeを増やす必要があります。しかし、フォントが小さすぎたり、プロットの線が細すぎたりするなどです。

With[{exSubscript = "\[UpTee]", epsFontSize = 24, 
   xcoords = {0.63, 2.2}}, testInset = Style[Inset[Cell[TextData[Cell[
      BoxData[FormBox[SubscriptBox["\[Epsilon]", exSubscript], 
           TraditionalForm]]]]], xcoords, {Left, Baseline}], 
     FontWeight -> Normal, FontSize -> epsFontSize];
  ];
Show[Plot[10 x^2, {x, 0, 1}, PlotStyle -> Thick, Frame -> True, 
  PlotRange -> {-2, 8}, Epilog -> {testInset}], Axes -> {True, True}, 
 AxesOrigin -> {0, 0}, AxesStyle -> Dashed, 
 FrameLabel -> {"\[Lambda] [\[Mu]m]", "Re{\[Epsilon]}"}, 
 BaseStyle -> {FontSize -> 22, FontWeight -> Plain, 
   FontFamily -> Helvetica}, ImageSize -> 500]
Export["test.eps", %]

Sample plot

編集:Szabolcsの回答を受け入れますが、ウィザード氏はFontFamily -> HelveticaFontFamily -> "Helvetica"の動作(バグのようです)を指摘したことで称賛されるべきです。引用符がない場合、PDFエクスポートは、フォントがめちゃくちゃになっているため、初心者ではありません。

17
Leo Alekseyev

画面と印刷の表示

特に表示される太さが1ピクセルに近づく場合、画面上の線の太さを比較することは困難です。最終的な出版物のサイズで図を印刷し、その方法で品質を確認するのが最善であることがわかりました。

絶対測定値を使用

これに関して私が抱えていた問題のほとんどは、Mathematicaが絶対測定と相対測定(プロットサイズに対して)の両方を使用しているという事実に起因しています。印刷で表示される図の場合、特にフォントサイズと線の太さについては、プロットに比例しない絶対サイズを使用するのが最も簡単です。このようにして、結果が印刷物でどのように見えるかについて良いアイデアを得ることができます(そしてそれは図のサイズに依存しません)。あなたがMathematicaに与える数字は、プリンタの要点です。

エクスポート

最後に、EPSへのエクスポートはPDF(たとえば、フォントが埋め込まれていない可能性があります))にエクスポートするよりも信頼性が低く、Mathematicaはすべての機能(たとえば不透明度!)を保持できないことがわかりました。 EPSにエクスポートする場合。2Dプロットの場合PDFは通常は良い選択です。ただし、PDFをエクスポートしてエクスポートでImageSizeを指定する場合はバグがあります。私が使用する回避策は次のとおりです。

cm = 72/2.54 (* centimetres *)
Export["figure.pdf", Show[figure, ImageSize -> 7 cm]] (* 7 cm wide figure *)

結果を紙にスケーリングなしで含めることができ、すべての図で一貫したフォントサイズと線の太さが得られます。

要約すると、これは多かれ少なかれ私のために働いています:

  1. 印刷物の図全体で一貫している必要があるものには絶対測定値を使用します
  2. 意図した最終サイズでPDFにエクスポートし、結果を含める前に結果を再スケーリングしないでください(たとえば、LaTeXで幅を指定しないでください)
17
Szabolcs

FontFamily -> "Helvetica"に置き換えて、PDFにエクスポートしました。 FoxitReaderでPDF)を開くと、次のように表示されます。

enter image description here

ズームが異なることを除けば(理由はわかりません)、レンダリングと非常によく似ています。

5
Mr.Wizard

出版品質のグラフィックスに使用した LevelScheme をよく見てみます。

1
rcollyer