2

y の値が小さすぎるため、y 軸に対数スケールを使用して違いを示す必要があります。データでは、一部のエントリには値がありません (0)。Y軸に「0」を表示する方法はありますか?

y=c(0.1, 0.001, 0.00001, 0.0000001, 0.000000001, 0)
x=c(1, 2, 3, 4, 5, 6)
plot(x, y, log="y");

ありがとう

4

3 に答える 3

3

私は自分が似たようなことをしていることに気づきましたが、完全に異なっていました. ここでつまずいた人にとって、私がやったことはおそらく何らかの役に立つかもしれません.

対数スケールで表示したい非常に大きな数値だけでなく、ゼロもいくつかあるという問題がありました。バープロットを使用し、0 には NA を使用しました。この場合、NA は空のスペースとして残されていることがわかりました。10 個の数値のみの例を作成しましたが、R はより多くの値のスケーリングを非常にうまく処理しているようです。

values<-c(100000, 100, 2, 5, NA, NA, 2, 1, NA, 1)
barplot(values, names=1:length(values), log="y")

イラスト画像

于 2013-01-25T13:08:21.343 に答える
2

私があなたの質問を正しく理解していれば、y軸に表示するためだけに0(ゼロ)が必要です

これはどう

y=c(0.1, 0.001, 0.00001, 0.0000001, 0.000000001, 0.0000000001)
x=c(1, 2, 3, 4, 5, 6)
plot(x, y, log="y",yaxt="n")
axis(2,at=c(0.1, 0.001, 0.00001, 0.0000001, 0.000000001, 0.0000000001) ,labels=c(0.1, 0.001, 0.00001, 0.0000001, 0.000000001,"0"))

ここに画像の説明を入力

y軸の描画をplot yaxt="n"無効にしてから、y軸を手動で描画し、引数で位置をaxis設定します。次に、私が持っている最低値(あなたの場合は0.0000000001)を(引数で)文字に設定しますticksat "0"label

于 2013-01-13T23:45:54.680 に答える
1

いくつかの最小値を選択し、それを使用して 0 を表します。

m <- min(y[y!=0])/10
plot(x, pmax(y, m), log="y")

ここに画像の説明を入力

于 2013-01-13T23:13:08.010 に答える