1. ホーム
  2. r

[解決済み] ggplotで軸の数字の書式を変更するには?

2022-04-27 21:07:24

質問

Rとggplotを使ってあるデータの散布図を描いていますが、Y軸の数字がコンピュータスタイルの指数書式、つまり4e+05、5e+05などで表示されること以外はすべてうまくいっています。これは受け入れがたいので、500,000、400,000などのように表示させたいのです。適切な指数表記を得ることも許容されるでしょう。

プロットのコードは以下の通りです。

p <- ggplot(valids, aes(x=Test, y=Values)) +
  geom_point(position="jitter") +
  facet_grid(. ~ Facet) +
  scale_y_continuous(name="Fluorescent intensity/arbitrary units") +
  scale_x_discrete(name="Test repeat") +
  stat_summary(fun.ymin=median, fun.ymax=median, fun.y=median, geom="crossbar")

よろしくお願いします。

解決方法は?

また、軸に適切な「x10(上付き)5」表記をする別の方法を見つけました。一部の人に役立つかもしれないので、ここに投稿します。私は以下のコードを入手しました。 こちら これはBrian Diggsの功績であり、私はこれを認めません。

fancy_scientific <- function(l) {
     # turn in to character string in scientific notation
     l <- format(l, scientific = TRUE)
     # quote the part before the exponent to keep all the digits
     l <- gsub("^(.*)e", "'\\1'e", l)
     # turn the 'e+' into plotmath format
     l <- gsub("e", "%*%10^", l)
     # return this as an expression
     parse(text=l)
}

として使用することができます。

ggplot(data=df, aes(x=x, y=y)) +
   geom_point() +
   scale_y_continuous(labels=fancy_scientific)