2010-11-08 4 views
3

Je rencontre des problèmes pour obtenir l'axe y sur un diagramme à barres horizontal() dans la zone de traçage. Voir cet exemple, je pensais que l'utilisation de ylim et/ou yaxp arrêterait cela en quittant la région de traçage, mais cela ne semble pas fonctionner.Axe Y hors de la zone de traçage avec barplot() dans R

J'ai essayé de reproduire la mise en place, j'ai:

x <- matrix(abs(rnorm(34)), nrow = 34, ncol = 3) 
rownames(x) <- c(seq(0,6600,200)) 
barplot(x[,3], horiz=TRUE, space = 0.4, main = "Title", las=1, cex.names=0.8, ylab="y label") 

Mais l'axe va de la région de traçage si j'ajoute ylim:

barplot(x[,3], horiz=TRUE, space = 0.4, ylim = c(0,25), yaxp=c(0,25,1), main = "Title", las=1, cex.names=0.8, ylab="y label") 
+0

Pourriez-vous fournir plus de détails sur ce que vous essayez de faire ici? Définir ylim = c (0,50) fera en sorte que tout reste dans la fenêtre de tracé. Est-ce votre question cependant? –

+0

Merci, mais voir le commentaire ci-dessous. – CCID

Répondre

3

La clé qu'il re est d'oublier ylim lors de l'utilisation barplot et au lieu simplement envoyer la plage traçante souhaitée dans les données:

barplot(x[1:25,3], horiz=TRUE, space = 0.4, yaxp=c(0,25,1), main = "Title", las=1, 
      cex.names=0.8, ylab="y label") 

Notez également que l'indexation en R commence à 1 et non à 0 car il pourrait dans d'autres langues.

+0

OK, cela a du sens. Merci. Par curiosité, les ylim de barplot se comportent-ils différemment des autres parcelles? – CCID

+0

Il a sûrement semblé montrer un comportement "inattendu" à moi. –

2

Pour certains (étrange?) raison, barplot a XPD = T par défaut, ce paramètre à false le fera à clipser comme la plupart des fonctions de terrain:

barplot(x[,3], horiz=TRUE, space = 0.4, ylim = c(0,25), yaxp=c(0,25,1), main = "Title", las=1, cex.names=0.8, ylab="y label", xpd=F) 
+0

Merci pour ces réponses, cependant, pour être plus clair, au lieu de modifier mon ensemble de données, je veux limiter l'intrigue aux 25 premières mesures dans ce cas. Si j'utilise xpd = F, comme ci-dessus, alors le tracé est coupé après les 18.5 premières barres et ne semble pas prendre en compte ylim. – CCID

Questions connexes