:
fmt_dcimals <- function(decimals=0){
# return a function responpsible for formatting the
# axis labels with a given number of decimals
function(x) as.character(round(x,decimals))
}
その後、
そして、あなたのプロットにスケールを追加します。
ggplot(...) + scale_y_log10(labels = fmt_dcimals(2))
今、私はこのことについて考えていることを、私はあなたが本当にあなた自身のフォーマッタを書くつもりなら、あなたはおそらくにformat
機能を使用してに固執する必要があることを追加する必要があります丸めたり強要するのではなく、仕事をしてください。それはおそらくより安全で「より良い」でしょう。
例として、小数点以下2桁を強制するために、あなたはこのような何かにこのフォーマット機能を変更することができます:
fmt_dcimals <- function(decimals=0){
function(x) format(x,nsmall = decimals,scientific = FALSE)
}
、あなたはさらに何を得るためにformat
にnsmall
とdigits
引数で遊ぶことができますあなたが欲しい、と思う。それの使用例:
df <- data.frame(x = 1:5,y = rexp(5))
ggplot(df,aes(x = x,y=y)) +
geom_point() +
scale_y_log10(labels = fmt_dcimals(2))
はありがとうございます。軸の外観の一貫性のために、数字が1小数に均等に丸められても常に2小数点以下を持ちたいと思います。ラウンド関数を常に2小数点以下を返すようにする方法はありますか?つまり、round(22.50,2)は22.50ではなく22.5を返します。 – MikeTP
@MikeTP遅れて申し訳ありません。私の編集はあなたの質問に答えると思う。 – joran
なぜ関数内に関数がありますか? – naught101