Je crée une parcelle dans R et je n'aime pas que les valeurs de l'axe x soient tracées par R.
Par exemple:
x <- seq(10,200,10)
y <- runif(x)
plot(x,y)
Ceci trace un graphique avec les valeurs suivantes sur l’axe des X:
50, 100, 150, 200
Cependant, je souhaite tracer les 20 valeurs 10,20, 30 ... 200
Stockées dans la variable x, en tant que valeurs de l'axe X. J'ai parcouru d'innombrables blogs et le manuel concis - après des heures de recherche, le mieux que je connaisse pour trouver quelque chose d'utile est constitué des instructions (résumées) suivantes:
plot()
ou par()
, en spécifiant l'argument xaxt='n'
axis()
par exemple axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)
Je l'ai essayé et le tracé résultant n'avait aucune valeur d'axe x. Est-il possible que quelqu'un sache comment faire cela? Je ne peux pas croire que personne n’a jamais essayé de le faire auparavant.
Vous trouverez la réponse à votre question dans la page d’aide de ?axis
.
Voici l'un des exemples de page d'aide, modifié avec vos données:
Option 1: utilisez xaxp
pour définir les étiquettes d'axe
plot(x,y, xaxt="n")
axis(1, xaxp=c(10, 200, 19), las=2)
Option 2: Utilisez at
et seq()
pour définir les étiquettes:
plot(x,y, xaxt="n")
axis(1, at = seq(10, 200, by = 10), las=2)
Ces deux options donnent le même graphique:
PS Comme vous avez un grand nombre d'étiquettes, vous devrez utiliser des arguments supplémentaires pour que le texte tienne dans le tracé. J'utilise las
pour faire pivoter les étiquettes.
Regardez de plus près au ?axis
Documentation. Si vous regardez la description de l'argument labels
, vous verrez qu'il est:
"a logical value specifying whether (numerical) annotations are
to be made at the tickmarks,"
Donc, changez-le en vrai et vous obtiendrez vos étiquettes de ticks.
x <- seq(10,200,10)
y <- runif(x)
plot(x,y,xaxt='n')
axis(side = 1, at = x,labels = T)
# Since TRUE is the default for labels, you can just use axis(side=1,at=x)
Veillez à ce que R ne puisse pas écrire toutes vos étiquettes si vous n’étirez pas la largeur de la fenêtre, alors jouez avec la largeur de la fenêtre et vous verrez ce que je veux dire.
Dommage que vous ayez eu tant de mal à trouver de la documentation! Quels étaient vos termes de recherche? Essayez de taper r axis
sur Google, et le premier lien que vous obtiendrez est le suivant: page Quick R mentionnée précédemment . Faites défiler jusqu'à "Axes", et vous obtiendrez un très joli petit guide sur la façon de le faire. Vous devriez probablement vérifier d’abord pour toutes les questions de tracé, ce sera plus rapide que d’attendre une réponse SO.
J'espère que ce codage vous aidera :)
plot(x,y,xaxt = 'n')
axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990"))
En cas de série chronologique de tracé, la commande ts.plot
nécessite un argument différent de xaxt="n"
require(graphics)
ts.plot(ldeaths, mdeaths, xlab="year", ylab="deaths", lty=c(1:2), gpars=list(xaxt="n"))
axis(1, at = seq(1974, 1980, by = 2))