8.1.7 グラフィックスのファイルへの保存 Export[]

2013年度の環境では、 以下のSetDirectory[] をしないでも、マイドキュメントに保存される。


関数 Export[]Export["ファイル名", グラフィックス] のように使って、グラフィックスをファイルに出力できる。 ファイル名の末尾を .eps にすると、 自動的に EPS フォーマットが選択される。

論より run
  g=Plot[4x^3-8x^2-4x+9,{x,-4,4}]
として描画したグラフィックス (g という変数に記憶された) を EPS ファイルとして保存するには、
  Export["z:\\.windows2000\\graph1.eps", g]
とするか、
  SetDirectory["Z:\\.windows2000"]   (一度やっておくと)
  Export["graph1.eps", g]            (後の Export[] が簡単になる)
とする。

注意: Mathematica の文字列中で、 バックスラッシュ \ を表わすには、 二つ続けた \\ とする必要がある。 そのため、パス名は本来 ``Z:\.windows2000\graph1.eps'' であるところを、上の例のようにしなければならない。 これは C 言語などと同じである。 なお、\ の代りに / を用いて、 Export["Z:/.windows2000/graph1.eps",g] とすることも出来る。

EPS ファイルは LATEX 文書に取り込むのに便利であるが、 Windows 環境で印刷する場合は、 Export["torus.jpg", g] のようにして、 JPEG のようなイメージ・フォーマットにした方が簡単かも知れない。

Version 6 以降の Mathematica では、 それ以前と比べてグラフィックス機能が大幅に拡張された影響で、 Export[] で PostScript データを生成すると、 ファイルのサイズが巨大になってしまう (あえて断言)。 TEX 文書などに取り込む場合、障害になることがある。 根本的な解決ではないが、二つ応急処置を示す。

  1. イメージ形式で出力してから、EPS に変換する。 例えば
    Export["graph.jpg", g]
    として、コマンド・プロンプトまたはターミナルで
    jpeg2ps graph.jpg > graph.eps (あるいは wjpeg2ps を使う)
    とする (2013年度情報処理教室のWindows環境には、 Cygwin の中に jpeg2ps が入っていて、 コマンド・プロンプトを開けば jpeg2ps コマンドが使える。)。 Export[] を実行する際、
    Export["graph.jpg", g, ImageResolution->1200]
    のように ImageResolution (解像度、 単位は dpi) を指定することで、画像の品質を選ぶことが出来る。
  2. Version 5 互換のグラフィックス機能を使う。
      <<Version5`Graphics`
    
    とすると、Version 5 と同等の処理をする。 例えば g=Plot3D[x^2-y^ 2,{x,-1,1}, {y,-1,1}] の結果を Export["graph.eps",g] とする場合で、 61KB と 1MB という10倍以上の差が生じた。 (参考: http://groups.google.com/group/comp.soft-sys.math.mathematica/browse_thread/thread/a669fd00915cbbf5/6b0387ea4f8732d4?pli=1)

あるいは PNG 形式や PDF 形式で出力して Export["graph.png", g])、 適当な方法で graph.bb のようなファイルを生成し (コマンドプロンプトで ebb graph.png とする? 情報処理教室の Window 環境に ebb コマンドがあるかどうか未確認)
\usepackage[dvipdfm]{graphicx}% これまでは dvips オプションを指定していた。
...
\includegraphics[width=10cm]{graph.png}
のように取り込む、というやり方も出来るかもしれません (このやり方をすると単独の dviout では表示できないので、 PDF を作って Adobe Acrobat で表示して確認することになります)。

桂田 祐史
2018-10-12