2015-06-04 4 views
1

У меня проблема с многопользовательскими записями. Первый всегда немного меньше остальных. Что мне делать, чтобы сделать его одинаковым? Данные упакованы в этом файле http://1drv.ms/1SYCyhYПроблемы с многопользовательскими записями в R

Участок я получил здесь:

enter image description here

Это код, я использую:

P2_TRF<-read.table("P2.txt",sep = "\t",header=F) 
P3_TRF<-read.table("P3.txt",sep = "\t",header=F) 
P4_TRF<-read.table("P4.txt",sep = "\t",header=F) 
P5_TRF<-read.table("P5.txt",sep = "\t",header=F) 
P6_TRF<-read.table("P5.txt",sep = "\t",header=F)  

windows(width=20,height=5) 
opar <- par(no.readonly=TRUE) 
par(mfrow=c(1,10)) 
par(pin=c(4,3),oma=c(4,4,3,0),mar=c(0,0,0,0.5)) 

plot(P2_TRF$V1,P2_TRF$V2,type="l",lwd=1.5,ann=F, 
     col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
     pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("0-2min",side=3,,font=2,line=-2,cex=0.8) 
mtext("Intensity (a.u.)",side=2,line=2,font=2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 
par(tcl= -0.5,cex=0.5) 
axis(2,at=seq(0,6,by=2),las="2") 

plot(P2_TRF$V3,P2_TRF$V4,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("2-4min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V5,P2_TRF$V6,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("4-6min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V7,P2_TRF$V8,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("6-8min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V9,P2_TRF$V10,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("8-10min",side=3,,font=2,line=-2,cex=0.8) 
mtext("1h15m",side=3,,font=2,line=1,cex=0.8) 
mtext("Time (ms)",side=1,line=3,font=2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V11,P2_TRF$V12,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("10-12min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V13,P2_TRF$V14,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("12-14min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V15,P2_TRF$V16,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("14-16min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V17,P2_TRF$V18,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("16-18min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 

plot(P2_TRF$V19,P2_TRF$V20,type="l",lwd=1.5,ann=F, 
    col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
    pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
mtext("18-20min",side=3,,font=2,line=-2,cex=0.8) 
par(tcl= -0.5,cex=0.5) 
axis(1,at=seq(0,10,by=2),lwd=1,lwd.ticks=1) 
par(opar) 
+0

Проблема связана с пространством, занимаемым меткой оси y и тиками. В базовой графике есть обходы, но вы против ggplot? Он очень легко справляется с такими вещами (хотя сначала нам нужно сначала преобразовать ваши данные). – Gregor

+0

ggplot было бы хорошо поучиться. Я немного прочитал об этом. Но я только начал изучать R. Так что, возможно, я посмотрю на это позже. В любом случае, большое вам спасибо за ваше время и усилия. – vulong

ответ

1

Вы забыли о вводе par(tcl= -0.5,cex=0.5) перед первым сюжетом. Эта опция остается для остальной части сюжета, поэтому нет необходимости повторять ее.

В качестве побочного примечания избегайте копирования и вставки так много, и используйте функцию wrapping, чтобы избежать повторного сброса аргументов функции все время. Например,

myplot <- function(x, y, mtext1, mtext2) { 
    plot(x, y, type="l",lwd=1.5,ann=F, 
     col="red",cex.axis=1.2,cex.lab=1.3,family="sans", 
     pch=19,axes=F, frame.plot=TRUE,xlim=c(0,11),ylim=c(0,6.5)) 
    mtext(mtext1,side=3,,font=2,line=-2,cex=0.8) 
    mtext(mtext2,side=2,line=2,font=2,cex=0.8) 
} 

Теперь каждый участок является однострочным, ниже - код для первого участка.

myplot(P2_TRF$V1, P2_TRF$V2, "0-2min", "Intensity (a.u.)") 
+0

Извините, я понял, что мои коды настолько грубые и неуклюжие. Я начинающий учитель. Так что все еще очень плохо. Ваши комментарии прекрасны. Я попытался изменить свой код, и теперь он работал намного легче. Теперь я знаю, как использовать функцию(). Большое вам спасибо за инструкцию! – vulong

+0

Зафиксировал ли ваш первый подзаговор? – Pafnucy

+0

Да, все идеально. Извините за задержку с ответом! – vulong