Отрегулируйте положение точек в барплоте - PullRequest
0 голосов
/ 09 октября 2019

Когда я попытался добавить линии к моему графику, я запутался в том, как получить правильный индекс для рисования линии, чтобы точки могли располагаться прямо в середине столбца, ниже приведены график и код, который я использовалпостроить это. Интересно, как настроить коды, чтобы улучшить позиционирование точек.

cupbp<-read.xlsx("Go.xlsx",sheet=2)
cupbp2<-subset(cupbp,PValue<0.05)
cupbp2$P.value<-log(cupbp2$PValue,base=2)
cupbp2$P.value<-abs(cupbp2$P.value)
cupbp2$bp<-substr(cupbp2$Term,12,nchar(cupbp2$Term))  
opar<-par(no.readonly=T)
par(mar=c(5,25,7,10)+0.1) 
par(cex.axis=0.6)

mybar<-barplot(height=cupbp2$P.value,names=cupbp2$bp,horiz=TRUE,las=1,xaxt="n",col="red",xlab="-log2 P value",xlim=c(0,ceiling(max(cupbp2$P.value))))
title("control vs AD up Bioprocess",line=4,adj=0.5)
axis(side=1,at=axTicks(1))
par(new=T)

plot(cupbp2$Count, mybar,
     type="o", pch=19, lwd=2, col="yellow", cex=1.2,
     ann=F,xaxt="n",yaxt="n",xlab="Gene number")
axis(side=3,at=axTicks(3))
mtext("Gene number",3,line=2)
par(opar)

enter image description here

Функция Barplot предоставила значение средней точки, сохраненное в «mybar» в моем примере,однако, функция plot не была пригодна для построения линий, по причине, которую я сейчас не совсем понимаю, изменение plot (count, mybar) на линии (count, mybar) решает проблему расположения точек, но на этот разось графика идет не так. Возможно, использование lines () заставит R считать второй граф не новым, поэтому ось содержалась как исходная. См. Этот модифицированный пример, в котором ось номера гена должна быть от 0 до 7, но она была сохранена от 0 до 14, как исходная.

enter image description here

Пожалуйста, дайте мне ценные предложенияо том, как настроить фигуру, как ожидалось.

1 Ответ

0 голосов
/ 09 октября 2019

Без ваших данных я не смог бы попробовать это на моей стороне, но я думаю, что это возможно: сначала умножьте ваш номер гена на 2, а затем сгенерируйте график, но пометьте 0 как «0», 4 как «2», 6 как «3», 8 как «4» ... и 14 как «7».

...