我试图在y轴上只获得10次幂,我尝试了StackOverflow上提供的许多方法但没有产生我想要的。
我想定义y轴的比例从10 ^ 2开始,然后下一个tick在10 ^ 4然后在10 ^ 6。
我尝试了xaxt
和at
以及axis
以及提到的所有内容here,但没有一项适用于10 ^ x ..
答案 0 :(得分:3)
plot.default()
函数提供log
参数,可用于轻松获取x轴,y轴或两者的对数刻度。例如:
x <- 2:6;
y <- 10^x;
plot(x,y,log='y');
如果要控制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);
答案 1 :(得分:1)