5

ggplot2 の R で単純な密度プロットを作成しようとしています。これがうまく機能する私のコードです。

d <-  ggplot(result, aes(x=result$baseMeanA)) 
d + geom_density(colour="darkgreen", size=2, fill="darkgreen") + 
scale_x_log10() + scale_y_continuous(limits = c(0, 0.45))

問題は、私が望むように x 軸を負の数に調整できないことです。

scale_x_log10(limits= c(1, 10000))

うまく機能しますが、

scale_x_log10(limits= c(-1, 10000))

まったく機能しません!それは私にこのエラーを与えます:

if (zero_range(range)) { のエラー: TRUE/FALSE が必要な場所に値がありません

助けてください!

4

3 に答える 3

5

制限の範囲が部分的にゼロ未満である必要がある場合は、変数をlog10変換し、連続スケールの制限を指定できます。

ggplot(result, aes(x=log10(baseMeanA))) +
   geom_density(colour="darkgreen", size=2, fill="darkgreen") + 
   scale_x_continuous(limits = c(-1, 10000) + 
   scale_y_continuous(limits = c(0, 0.45)) +
于 2012-09-17T18:33:00.880 に答える
2

あなたがやろうとしていることはあまり意味がありませんか?負の数の対数は、Rで表すことができるものではありません

R> log(-1)
[1] NaN
Warning message:
In log(-1) : NaNs produced

では、Rはどこに軸を引く必要がありますか?

于 2012-09-17T15:34:09.660 に答える
1

e^y を負にすることはできません。指数定数 e は正であり、y は単なる指数です。および数学的な定義により:

log(x) = y <==> x = e^y

これがまさに、x が負の場合に R が log(x) を計算できない理由です。数学の定義に反するだけです。

これが、このプロットが問題を引き起こしている理由を理解するのに役立つことを願っています.

于 2012-10-12T12:35:23.150 に答える