SAS

スタイルテンプレートで論文用グラフを作成する(2) テンプレートを編集する

前回はデフォルトスタイルテンプレートを使用することで論文投稿用のスタイルを適用したグラフを作成する方法を紹介しましたが、
論文によっては指定したフォントを使用することになっているので、スタイルテンプレートを編集してフォントを変更しておきます。
フォント以外も編集可能ですが、通常の成果物ではフォントを変更するだけで十分でしょう。

スタイルの編集方法

テンプレートは1から作成することもできますが、既存のテンプレートをロードして一部を変更して上書きするほうが早いです。
parentオプションを使用することで既存のテンプレートの設定をコピーすることができます。あとは変更したい設定を指定すればOKです。

今回はjournalテンプレートのフォントを変更してみます。論文ではTimes New RomanかArialを使用することが多いので、すべてのグラフフォントをTimesに指定します。
なお英数字と日本語が混在する場合はそれぞれに別のフォントを指定することはできないようです。なので日本語を使用する場合は日本語フォントのみを指定しましょう。

複数のフォントを指定することもできます。その場合は最初に指定したフォントが優先的に使用され、最初に指定したフォントが使用できなかった場合は次のフォントを使用する仕組みとなります。


proc template ;
define style mystyle;
parent=styles.journal;

/*グラフフォント*/

class GraphFonts /
'NodeDetailFont' = ("Times",7pt)
'NodeInputLabelFont' = ("Times",9pt)
'NodeLabelFont' = ("Times",9pt)
'NodeTitleFont' = ("Times",9pt)
'GraphTitleFont' = ("Times",11pt)
'GraphTitle1Font' = ("Times",14pt)
'GraphFootnoteFont' = ("Times",10pt)
'GraphLabel2Font' = ("Times",10pt)
'GraphLabelFont' = ("Times",10pt)
'GraphUnicodeFont' = ("Times",9pt)
'GraphValueFont' = ("Times",9pt)
'GraphDataFont' = ("Times",7pt)
'GraphAnnoFont' = ("Times",10pt);
end;
run;
ods listing style=mystyle gpath="画像保存パス";
ods graphics /width=25cm height=15cm imagename="画像名";
proc sgrender data=作図データセット template=テンプレート名;
run;

このスタイルテンプレートを使用してフォレストプロットを出力すると以下のようになります。フォントがすべてTimes new romanに変わりました。

実行結果

上記のテンプレートだと表示文字列に日本語フォントが入っていると正しく表示されません。その場合は”Times”を”MS Mincho”に変更するとMS明朝で表示できます。

ちなみに既存のスタイルテンプレートの中身を見てみたい場合はsourceオプションを使用するとログにテンプレートの中身が出力されます。

proc template;
source styles.journal;
run;