155

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")

どんな助けでも大歓迎です。

4

5 に答える 5

151

別のオプションは、パッケージを使用して軸の目盛りラベルをコンマでフォーマットしscales、追加することです

 scale_y_continuous(name="Fluorescent intensity/arbitrary units", labels = comma)

あなたのggplotステートメントに。

パッケージをロードしたくない場合は、次を使用します。

scale_y_continuous(name="Fluorescent intensity/arbitrary units", labels = scales::comma)
于 2012-07-23T11:41:26.307 に答える
44
x <- rnorm(10) * 100000
y <- seq(0, 1, length = 10)
p <- qplot(x, y)
library(scales)
p + scale_x_continuous(labels = comma)
于 2012-07-23T10:26:26.660 に答える
18

私はここでゲームに遅れていますが、他の人が簡単な解決策を求めている場合に備えて、次のように呼び出すことができる関数のセットを作成しました:

 ggplot + scale_x_continuous(labels = human_gbp)

これにより、x または y 軸の人間が読める数値 (または、実際には任意の数値) が得られます。

ここで関数を見つけることができます: Github Repo 関数をスクリプトにコピーして呼び出すことができます。

于 2015-04-21T15:06:26.857 に答える
12

ジャック・エイドリーの提案された回答は有用なものだと思います。

別の選択肢を捨てたかった。多数の小さな数値を含む系列があり、軸ラベルが完全な小数点を書き出すようにしたい場合 (例: 5e-05 -> 0.0005)、次のようにします。

NotFancy <- function(l) {
 l <- format(l, scientific = FALSE)
 parse(text=l)
}

ggplot(data = data.frame(x = 1:100, 
                         y = seq(from=0.00005,to = 0.0000000000001,length.out=100) + runif(n=100,-0.0000005,0.0000005)), 
       aes(x=x, y=y)) +
     geom_point() +
     scale_y_continuous(labels=NotFancy) 
于 2015-03-15T20:41:06.820 に答える