どうも。kwaz6です。
最近Matlabで悩まされている問題について、一つの解決を得たので備忘録としてまとめておきたいと思います。
この記事が参考になる方
「Matlabでグラフを作成していてEPSファイル形式で保存する方向け」と思っています。例えば、制御を主とする研究室学生の方、Matlabでグラフ生成している方とかですかね。
はじめに結果を述べておきます。以下に示す2枚の画像の内、上図はEPSファイルが分割して画像化されてしまう場合、下図はEPSファイルを正しくベクトル形式で画像化できた場合です。
この結果を得るための解決策についてまとめたいと思います。
使用しているツール
-
Matlab2018b
では説明していきます。
Matlabでシミュレーションした画像をEPSで保存
Matlabでよく使うグラフ描画関数はご存じの方もいると思いますが、一応以下に示します。
2Dであれば、
plot(x, y,'k-','LineWidth',3);
3Dであれば、
plot3(x,y,z,'k-','LineWidth',3);
各部を簡単にplot()で説明すると、( )内の左から
plot(x軸データ, y軸データ, 線の色と形式, 線の太さ, 数字)
という風になっています。
線の色と形式についてはk-で黒の実線。r--で赤の破線のように線の色と線の形を選ぶことができます。詳しくは下記のMathWorks社公式ページを参照してみてください。
https://www.mathworks.com/help/matlab/ref/plot.html
さて、これで無事画像ファイルが次のように出力されていると思います。
ここから「名前を付けて保存」を押してeps形式でファイルを保存します。
そしてillustratorで保存したファイルを開きます。
問題のEPS分割化
illustratorでファイルを開くとなぜか下に示す図のようにEPSファイルの画像が分割されてしまい、後々illustrator上で文字サイズ等を変更できない状態になってしまうことが分かります。
解決策:エクスポート設定
色々探した結果、とりあえず次の手順で解決できました。
手順は次の通りです。
-
plot() or plot3()でグラフを描画・表示
-
メニューバーの「表示」⇒「プロパティエディタ」をクリック
-
メニューバーの「ファイル」⇒「エクスポート設定」⇒「レンダリング」⇒カスタムレンダラーをチェック、解像度(dpi)を300 or 600に設定。(もしかしたら他の解像度でも可能かと思いますが未確認)
-
「エクスポート」を押して任意の名前を付けて保存して「OK」をクリック
実際の画像でも手順を示しておきます。
以上の手順により、実際に出力したEPSファイルをillustratorで改めて表示すると次に示す画像になる。
このように全選択した際に全てがベクトル形式の図になっており、文字やフォントを自由に修正できるようになっていることが分かる。
これで無事EPSファイルを画像で分割化されずに編集できるようになりました。
疑問点
一応の解決を見ることはできましたが、いくつか疑問が残ります。
この現象は今回の方法で本当に解決できたのか、それともたまたま解決できたのか。この点については正直分かりません。ただ、同じような問題に直面した方がいたら試してみて頂ければと思います。
もし、他に解決法を知っている方がいたらコメント頂けると助かります。
それでは、楽しいMatlabライフを。