web-dev-qa-db-ja.com

Rのプロットでフォントサイズを大きくするにはどうすればいいですか?

私は混乱しています。タイトル、ラベル、その他のプロット内のテキストのフォントサイズを大きくするための正しい方法は何ですか?

例えば

x <- rnorm(100)
hist(x, xlim=range(x), xlab= "Variable Label", 
     ylab="density", main="Title of plot", prob=TRUE, ps=30)

ps引数はフォントサイズを変更しません(ただし、?parのRヘルプでは「テキストのポイントサイズ(シンボルではありません)」という意味です。

histのようなプロット関数からフォントサイズの変更を分離することも可能ですか?

127
Tim

あなたはcex=1.5引数のようなフォントを150パーセントで拡大縮小することを望みます。 cex.labcex.axis、...もあるのでhelp(par)を見てください。

127

したがって、既存の議論をまとめると、

cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5

あなたのプロットでは、1.5は2、3などであり、1の値はデフォルトでフォントサイズを大きくします。

x <- rnorm(100)

cexは物事を変えない

hist(x, xlim=range(x),
     xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE)

hist(x, xlim=range(x),
     xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE, 
     cex=1.5)

enter image description here

Cex.lab = 1.5、cex.axis = 1.5、cex.main = 1.5、cex.sub = 1.5を追加

hist(x, xlim=range(x),
     xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE, 
     cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5)

enter image description here

114
Jeromy Anglim

"cex"は、プロットがテキストで作成されたときに状況が変わることに注意してください。たとえば、凝集型階層クラスタリングのプロットは、次のとおりです。

library(cluster)
data(votes.repub)
agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
plot(agn1, which.plots=2)

通常のサイズのテキストでプロットを作成します。

enter image description here

そしてplot(agn1, which.plots=2, cex=0.5)はこれを生成します:

enter image description here

21
OskrSaSi

試行錯誤により、フォントサイズを設定するには以下が必要であると判断しました。

  1. cexhist()では機能しません。座標軸上の数字にはcex.axisを、ラベルにはcex.labを使用してください。
  2. cexaxis()でも機能しません。軸上の数字にはcex.axisを使用してください。
  3. hist()を使用してラベルを設定する代わりに、mtext()を使用してラベルを設定できます。 cexを使用してフォントサイズを設定できますが、値1を使用すると実際にはフォントがデフォルトの1.5倍に設定されます!!!cex=2/3を使用する必要がありますデフォルトのフォントサイズを取得します。少なくとも、これはPDF outputを使った、Mac OS X用のR 3.0.2の下のケースです。
  4. pdf()pointsizeを使用して、PDF出力のデフォルトのフォントサイズを変更できます。

私は、Rが(a)その文書が行うべきことを実際に行うこと、(b)期待されるように振る舞うことを期待するのは、論理的すぎる可能性があると思います。

20
Urban Vagabond

軸ラベルを小さくしたいが、他のものはすべて同じサイズのままにしたいとき、私はこれに出会いました。私のために働いたコマンドは、置くことでした:

par(cex.axis=0.5)

Plotコマンドの前忘れないでください。

par(cex.axis=1.0)

プロット後にフォントがデフォルトのサイズに戻ることを確認します。

2
Odysseus Ithaca

完璧を期すために、cex = 1.5を使用してテキストを150%拡大するには、これが完全な解決策です。

cex <- 1.5
par(cex.lab=cex, cex.axis=cex, cex.main=cex)
plot(...)
par(cex.lab=1, cex.axis=1, cex.main=1)

ボイラープレートを減らすために、このようなものをラップすることをお勧めします。

plot_cex <- function(x, y, cex=1.5, ...) {
  par(cex.lab=cex, cex.axis=cex, cex.main=cex)
  plot(x, y, ...)
  par(cex.lab=1, cex.axis=1, cex.main=1)
  invisible(0)
}

これを次のように使えます。

plot_cex(x=1:5, y=rnorm(5), cex=1.3)

...はRでは省略記号として知られており、追加のパラメーターを関数に渡すために使用されます。したがって、それらは一般的にプロットに使用されます。したがって、次のように動作します。

plot_cex(x=1:5, y=rnorm(5), cex=1.5, ylim=c(-0.5,0.5))
1
Adam Erickson

Labels = TRUEを設定しているときにヒストグラムのラベルのフォントを大きくしたい場合

bp=hist(values, labels = FALSE, 
 main='Histogram',
 xlab='xlab',ylab='ylab',  cex.main=2, cex.lab=2,cex.axis=2)

text(x=bp$mids, y=bp$counts, labels=bp$counts ,cex=2,pos=3)
1
yeinhorn