Rのプロットでフォントサイズを増やす方法は?


147

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

例えば

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

ps引数には、フォントサイズを変更しません(それがためにRヘルプの言う?parことは、「テキスト(ただし、記号)のポイントサイズ」のためのものであること。

また、フォントサイズの変更を、hist?などのプロット関数から切り離すこともできます。


回答:


140

cex=1.5フォントを150%拡大するための引数のようなものが必要です。しかし、見ていhelp(par)もあるとしてcex.labcex.axis...


1
ありがとう!「ps = 1.5」との違いは何ですか?
Tim

5
なぜcex = 1.5が機能しないのですか?しかし、各パーツに対してcex.lab、cex.axis、cex.mainの観点から指定する必要がありますか?cex = 1.5とは何ですか?
Tim

2
読みhelp(par)ましたpsか?私の知る限り、テキスト関連ではないようです。
Dirk Eddelbuettel、2010年

2
これは、S言語の以前の実装との下位互換性を確実にするための部分です。
Dirk Eddelbuettel、2010年

3
cexは拡大係数です。デフォルト値は1です。フォントサイズを指定する必要がある場合は、?Devices、?pdfFonts、?pdf、?embedFontsなどで始まるドキュメントを掘り下げる準備をしておくことをお勧めします。
IRTFM 2010年

124

したがって、既存の議論を要約すると、

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)

ここに画像の説明を入力してください

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)

ここに画像の説明を入力してください


2
ところで、棒グラフの軸を変更しようとしている場合(たとえば、randomForestまたはGBMの変数重要度プロットの場合)を使用する必要がありますcex.names(直立位置から物事を読む人間の場合は、欲しいlas=2
ジェネラマ2016年

22

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

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

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

ここに画像の説明を入力してください

そしてplot(agn1, which.plots=2, cex=0.5)、このいずれかを生成します:

ここに画像の説明を入力してください


faces2チェルノフの顔から)
1

私の例では、私は適用しなければならなかったCEX ないプロットが、効果のために、直接内部オブジェクトに:plot(ci(roc(data$a, data$b, auc=TRUE, of="auc", print.auc=TRUE, print.auc.cex=1.5, plot=TRUE), of="thresholds", thresholds="best")))
タッパー

21

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

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

Rが(a)ドキュメントに書かれているとおりに実際に動作すること、(b)期待どおりに動作することを期待するのは、あまりにも論理的すぎると思います。


2

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

par(cex.axis=0.5)

プロットコマンドの前。次のことを忘れないでください。

par(cex.axis=1.0)

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


2

完全を期すために、でテキストを150%スケーリングします。これcex = 1.5が完全なソリューションです。

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

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)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.