私はループでいくつかのggplotチャートをプロットしています(私は知っています、私はplyrを使用してループしないことを知っています...しかし)、小数精度を1小数(つまり0.0)に設定する方法があるかどうか興味がありました。次のスケール変換を使用しています。
p <- p + scale_y_log10()
どんな助けでも大歓迎です。
小数点以下1桁(つまり1.2)がデフォルトであるという印象を受けましたが、それよりも小数点以下の桁数が多い場合は、独自のフォーマットをスケールに渡すことができます。
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)
}
nsmall
そして、あなたはさらにあなたが望むものを得るためにとdigits
引数で遊ぶことができるとformat
私は思います。その使用例:
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))