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