2016-06-26 4 views
1

y軸で10倍のスケールしか得ようとしていないので、私は多くのアプローチをStackOverflowで提供していますが、y軸をパワー10の値でスケールするR

y軸のスケールを10^2から開始し、次のティックを10^4に、次に10^6に定義したいとします。

10^X ..

+1

作業する人に[再現可能な例](http://stackoverflow.com/q/5963269/1217536)を提供してください。 – gung

答えて

1

axis()作品のために、私はxaxtataxisを試してみましたし、すべてがhereを述べたが、どれも仕事:

x <- 2:6 
y <- 10^x 
plot(x, y, yaxt = "n") 
axis(2, at = 10^(c(2, 4, 6))) 

enter image description here

唯一の問題はということですこれは確かにプレゼンテーションのための良い方法ではありません。あなたはどのくらい早く1e+nが成長するか知っていますか?プロットですでに見てきたように、1e + 6と1e + 4のティックはほぼ一致しています。データの範囲が1 ~ 1e+8以上であれば、ログスケールでプロットする方がよいでしょう。

plot(x, log10(y), yaxt = "n") 
axis(2, at = c(2,4,6)) 

enter image description here

2

plot.default()機能を容易にx軸、y軸、またはその両方の対数スケールを取得するために使用することができるlog引数を提供します。たとえば、次のように

plot1

あなたは、y軸を使用すると、デフォルトの軸を無効にし、通常の方法で自分自身を描くことができ、ダニ制御したい場合:

## generate data 
x <- 2:6; 
y <- 10^x; 

## precompute plot parameters 
xlim <- c(2,6); 
ylim <- c(10^2,10^6); 
xticks <- 2:6; 
yticks <- 10^seq(2L,6L,2L); 

## draw plot 
plot(NA,xlim=xlim,ylim=ylim,log='y',axes=F,xaxs='i',yaxs='i',xlab='x',ylab='y'); 
abline(v=xticks,col='lightgrey'); 
abline(h=yticks,col='lightgrey'); 
axis(1L,xticks,cex.axis=0.7); 
axis(2L,yticks,sprintf('10^%d',as.integer(log10(yticks))),las=2L,cex.axis=0.7); 
##axis(2L,yticks,sprintf('%.0e',yticks),las=2L,cex.axis=0.7); ## alternative 
points(x,y,pch=19L,col='red',xpd=NA); 

plot2

関連する問題