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");
ありがとう
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");
ありがとう
私は自分が似たようなことをしていることに気づきましたが、完全に異なっていました. ここでつまずいた人にとって、私がやったことはおそらく何らかの役に立つかもしれません.
対数スケールで表示したい非常に大きな数値だけでなく、ゼロもいくつかあるという問題がありました。バープロットを使用し、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")
私があなたの質問を正しく理解していれば、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)を(引数で)文字に設定しますticks
at
"0"
label
いくつかの最小値を選択し、それを使用して 0 を表します。
m <- min(y[y!=0])/10
plot(x, pmax(y, m), log="y")