Rで対数目盛にスケーリングされた軸を使用して、組織図、散布図、およびその他のプロットをプロットするときに、表示されている軸の代わりに10 ^ -1 10 ^ 0 10 ^ 1 10 ^ 2 10^3などのラベルを使用するにはどうすればよいですか。 -1、0、1、2、3など。hist()、plot()などのコマンドに追加する必要があるパラメーターは何ですか。
23290 次
3 に答える
22
ggplot2の解決策(gsk3のコメントを参照)とは別に、これは正しい引数を使用した場合にもplot()で自動的に行われることを追加したいと思います。
x <- 1:10
y <- exp(1:10)
plot(x,y,log="y")
log="x"
X軸、またはその両方のパラメータを使用できますlog="xy"
。
数値をフォーマットする場合、またはデータをログ形式にする場合は、axis()を使用して回避策を実行できます。いくつかの興味深い関数:
axTicks(x)
X軸(x = 1)またはY軸(x = 2)の目盛りの位置を示しますbquote()
式を言語に変換しますが、変数をその値に置き換えることができます。bquote()
質問ラテックスとRのプロットラベルの変数に関する詳細情報?。as.expression()
式から言語オブジェクトを作成しますbquote()
。これによりaxis()
、で説明されているようにフォーマットを行うことができます?plotmath
。言語オブジェクトではそうすることはできません。
素敵なフォーマットの例:
x <- y <- 1:10
plot(x,y,yaxt="n")
aty <- axTicks(2)
labels <- sapply(aty,function(i)
as.expression(bquote(10^ .(i)))
)
axis(2,at=aty,labels=labels)
これは
于 2011-08-01T11:21:18.650 に答える
15
このタイプの軸を描画する別の方法は次のとおりです。
plot(NA, xlim=c(0,10), ylim=c(1, 10^4), xlab="x", ylab="y", log="y", yaxt="n")
at.y <- outer(1:9, 10^(0:4))
lab.y <- ifelse(log10(at.y) %% 1 == 0, at.y, NA)
axis(2, at=at.y, labels=lab.y, las=1)
編集:これもで解決さlatticeExtra
れますscale.components
于 2016-02-05T15:17:12.873 に答える
2
ggplot2では、
... +
scale_x_log10() +
scale_y_log10(limits = c(1e-4,1), breaks=c(1e-4,1e-3,1e-2,0.1,1)) + ...
軸を拡大縮小するには、ラベルを付けてカスタムブレークを追加します。
于 2015-05-15T09:07:56.680 に答える