web-dev-qa-db-fra.com

Définir les tracés R sur l'axe des x pour qu'ils s'affichent à y = 0

Habituellement, lorsque je trace un tracé de ligne R et que je définis ylim=c(0,some_value), il y a un petit espace entre l'axe x et y = 0.

J'aimerais que l'axe y s'affiche exactement à y = 0 pour que les points (x, 0) soient tracés sur l'axe y (et non au-dessus).

40
David B

Vous voulez probablement les paramètres graphiques xaxs et yaxs avec le style "i":

plot(1:10, rnorm(10), ylim=c(0,10), yaxs="i")

Voir ?par:

xaxs: Le style de calcul de l'intervalle d'axe à utiliser pour l'axe des x. Les valeurs possibles sont "r", "i", "e", "s", "d". Les styles sont généralement contrôlés par la plage de données ou xlim, le cas échéant. Le style "r" (régulier) étend d'abord la plage de données de 4% à chaque extrémité, puis trouve un axe avec de jolies étiquettes qui correspond à la plage étendue. Le style "i" (interne) trouve juste un axe avec de jolies étiquettes qui correspond à la plage de données d'origine. Le style "s" (standard) trouve un axe avec de jolies étiquettes dans lequel la plage de données d'origine tient. Le style "e" (étendu) est semblable au style "s", sauf qu'il garantit également qu'il y a de la place pour tracer des symboles dans le cadre de sélection. Le style "d" (direct) spécifie que l'axe actuel doit être utilisé sur les tracés suivants. (Seuls les styles "r" et "i" sont actuellement implémentés)

yaxs: Le style de calcul d'intervalle d'axe à utiliser pour l'axe y. Voir xaxs ci-dessus.

50
rcs

Une autre option consiste à désactiver le tracé de l'axe dans le tracé à l'aide de axes=F, puis placez les axes séparément à l'aide de la commande d'axe, l'option pos contrôlant l'espacement des axes.

plot(1:10, runif(10), ylim=c(0,1), xlim=c(0,10),axes=F)
     axis(1, pos=0)
     axis(2, pos=0)   
14
WetlabStudent