2017-10-17 2 views
0

J'essaie de produire un graphique à points avec un axe secondaire en haut. Cependant, une fois que j'ai tracé le second pointchart (avec un par (nouveau = T)), je ne peux pas comprendre comment ne pas afficher les coches de l'axe sur les précédents dans le côté de l'axe = 1. Voici mon code avec les données Mock:Dotchart avec axe secondaire

y1_i <- c(2,8,2,14,2) 
y2_i <- c(15,17,28,22,30) 
y1_f <- c(4,9,11,16,7) 
y2_f <- c(13,11,16,11,21) 

y=c(y1_i,y2_i,y1_f,y2_f) 

x <- c("AAEG","AALO","AGAM","ACHR","AALB") 

y1=c(y1_i,y1_f) 
y2=c(y2_i,y2_f) 

dotchart(y1_i,labels=x,xlab="N50 length",xlim = c(0,max(y1))) 
par(new=T) 
dotchart(y2_i,labels=x,xlim = c(0,max(y2))) 
axis(side=3) 

enter image description here

De plus, si possible, je voudrais ajouter un deuxième ensemble de données qui seraient légèrement poussé verticalement au-dessus du premier ensemble de données (à ne pas se chevaucher elle), mais correspondant toujours aux mêmes catégories d'axes y.

Merci pour toute suggestion :)

Répondre

0

Je l'ai trouvé, en utilisant dotchart2 du paquet Hmisc

library(Hmisc) 

y1_i <- c(2,8,2,14,2) 
y2_i <- c(15,17,28,22,30) 
y1_f <- c(4,9,11,16,7) 
y2_f <- c(13,11,16,11,21) 

y=c(y1_i,y2_i,y1_f,y2_f) 

x <- c("AAEG","AALO","AGAM","ACHR","AALB") 

y1=c(y1_i,y1_f) 
y2=c(y2_i,y2_f) 
y1_i <- c(2,8,2,14,2) 
y2_i <- c(15,17,28,22,30) 
y1_f <- c(4,9,11,16,7) 
y2_f <- c(13,11,16,11,21) 

y=c(y1_i,y2_i,y1_f,y2_f) 

x <- c("AAEG","AALO","AGAM","ACHR","AALB") 

y1=c(y1_i,y1_f) 
y2=c(y2_i,y2_f) 

dotchart2(y1_i,labels=x,xlab="N50 length",xlim = c(0,max(y1))) 
par(new=T) 
dotchart2(y2_i,labels=x,xlim = c(0,max(y2)),xlab="Scaffold number",lines=F,xaxis=F) 
axis(side=3,xlab="Scaffold number")