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

mtext関数でフォントを混在させる

R

通常フォントファミリーで指定してしまうので、フォントを混在させることはあまりありません。
mtext関数を駆使する事で、複数のフォントを使ってグラフを作成することができます。
postscript出力では未チェックですが、Windows環境でemf出力するか、ビットマップ系出力する場合には使う事ができました。

png(
  filename="c:/mtext.png", width = 600, height = 600
)

windowsFonts(Min="TT MS Mincho")
windowsFonts(Goth="TT MS Gothic")
par(family="Min")
par(bty="l")
par(ps=40)
par(mar=c(6.4, 4.4, 4.4, 4.4), mgp=c(4.6, 1.7, 0))
plot(
  c(1, 2, 3), runif(3, 0, 1),
  type="b", pch=20, lwd=8, cex=8, col = "#E64B6B",
  ylim=c(-2.5, 2.5), xlim=c(0.8, 3.2),
  yaxt="n", xaxt=c("n"),
  xlab=" なんたらかんたら", ylab=""
)
axis(1, 1:3, c("X", "Y", "Z"), family="serif")

mtext("(1)",                  side=1, line=4.4, family="serif", cex=.8, at=1)
mtext("左-2: 縦軸別フォント", side=2, line=1,   family="Goth")
mtext("上-3: UP",             side=3, line=1,   family="Goth")
mtext("揃え1",                side=4, line=1,   family="Min", adj=1)
mtext("揃え2",                side=4, line=1,   family="Min", adj=0)
mtext("揃え3 右-4",           side=4, line=1,   family="Min", padj=1)

dev.off()


mtext関数は位置指定のための引数が充実していて、位置を縦軸に指定すると文字列を自動で回転してくれたりします。

text: 表示文字列
side: 1=下, 2=左, 3=上, 4=右
line: 軸からのマージン
at: 表示位置、xlim=c(1,3)とかだと、at=1でx軸方向の1の位置に表示される
adj: atの簡易版、0=左または下に揃える、1=右または上に揃える
padj: lineの簡易版、0=内側に密着、1=外側に密着
family: フォントファミリーを指定
...

単に文字列のフォントを変えたりするだけではなく、atを使って特殊なtick labelを作ったりできそうです。




faviconを導入してみました。