読者です 読者をやめる 読者になる 読者になる

ods pdf ステートメントで高解像度のグラフを作ろう

ods pdf のデフォルト出力は解像度が残念すぎて、とても使う気にはなれません。
という事で、解像度の設定について調べてみたら、dpi というオプションがありました。

ods results off;
ods listing close;
ods pdf file = "&Path.filename.pdf" dpi = 600 style = Journal;
ods graphics on / width = 12 cm;

proc ...;
...
run;

ods graphics off;
ods pdf close;
ods results on;
ods listing;


かなり綺麗だ!


ods graphics のオプションを指定して、高解像度でサイズが大きめのグラフも作れます。


html 系の ods 出力の場合は

ods html image_dpi = 600;

が使えるみたいです。


また、

ods listing image_dpi = 600;

が使用できますので、ほとんどの場合はこちらで事足りるでしょう。


これで sgplot 系のグラフを出力するときも安心ですね。

ods pdf で pdf ファイル作ったら文字化けするんだけど・・・

この現象は style の定義で日本語フォントが使えない状態になっているために起こります。
しかも日本語設定済みの SAS でもデフォルトだと化けるという体たらく。
なので、template procedure を使って日本語が使えるように style を修正してあげると表示できるようになります。

proc template;
define style Styles.MyJournal;
   parent = styles.Journal;
   style fonts /
      'docFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2)
      'headingFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,italic)
      'headingEmphasisFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,bold italic)
      'FixedFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2)
      'FixedHeadingFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,italic)
      'FixedStrongFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,bold)
      'FixedEmphasisFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,bold italic)
      'EmphasisFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,italic)
      'StrongFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,bold italic)
      'TitleFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,bold italic)
      'TitleFont2' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,bold italic)
      'SASTitleFont' = ("MS PMincho, <sans-serif>, Helvetica, Helv",2,bold italic);
run;
ods pdf file = "&Path.filename.pdf" dpi = 600 style = MyJournal;
...