Как сделать одну ось в R в стандартной форме (без ggplot)? - PullRequest
0 голосов
/ 13 июля 2020

Довольно новичок в r, но я пытаюсь создать функцию для построения графика данных, когда я их получаю, с довольно большим количеством опций. По оси Y требуется диапазон от 0 до 150000, а метки записываются в виде целых чисел. Проблема в том, что мне нужно записать их в стандартной форме (желательно в «нормальной» нотации 10 ^ x, а не в E. Каждый ответ, который я видел, использует ggplot, с которым я не знаком, поэтому я бы предпочел внести это одно изменение. без, если возможно.

Я впервые задаю здесь вопрос, поэтому, пожалуйста, дайте мне знать, если есть что-то еще, что мне нужно указать.

Вот полный код функции и ввод - это фрейм данных.

cdplot=function(a,title,label,XLL,XUL,YLL,YUL,Avrg,buf,b,pl,c){
  plot(NULL,type="l",xlab="Wavelength (nm)",xlim=c(1,nrow(a)),ylab="",ylim=c(YLL,YUL),xaxt="n",las=1)
  axis(1,at=seq(1,nrow(a),by=5),labels=seq(XLL,XUL,by=5))
  temp=NULL 
  temp=a[-1]
  temp=temp/(10*pl*(c/10^6))
  abline(h=0,lty=2)
  if(buf==T){
    btemp=((temp[,(b)]+temp[,(b+1)]+temp[,(b+2)])/3)
    temp=temp[,c(-b,-(b+1),-(b+2))]-btemp
  }
  
  if(Avrg==F){
  i=1
  for(i in (i:ncol(temp))){
    
    lines(x=rev(temp[,i]), type="l",col=(ceiling(i/3)),lwd=2)
    
  }
  }
  
  else{
    i=1
    for(i in (i:(ncol(temp)/3))){
      mtemp=((temp[,(3*i-1)]+temp[,(3*i)]+temp[,(3*i)])/3)
      lines(x=rev(mtemp),type="l",col=i,lwd=2)
    }
  }
  legend("bottomright",legend=label,col=c(1:length(label)),lty=1)
  title(title)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...