Remplacer l'axe X par ses propres valeurs


95

J'ai une question concernant la commande plot ().

Existe-t-il un moyen d'éliminer complètement l'axe des x et de le remplacer par ses propres valeurs? Je sais que je peux me débarrasser de l'axe en faisant

plot(x,y, xaxt = 'n')

puis ajoutez un axe avec

axis(side = 1 etc.)

Cependant, lorsque j'ajoute l'axe, il fait évidemment toujours référence aux données tracées en tant que «x». Je voudrais seulement tracer les valeurs 'y' et ajouter mon propre axe x dans le sens de simplement "dessiner" l'axe x avec ses propres valeurs spécifiées. Y'a-t'il un quelconque moyen d'y arriver?

Le contexte de cette question est que mes deux blocs de données diffèrent par leur longueur et que je ne peux donc pas les tracer.


Voulez-vous tracer des vecteurs de différentes longueurs ou simplement définir l'étiquette x par vous-même? Pourriez-vous donner un exemple ou donner plus d'informations sur l'ensemble de données?
Manoel Galdino

Vous voudrez peut-être également voir comment combiner deux blocs de données ensemble. Vous pourrez peut-être créer plus de tracés à partir de vos données et probablement rendre les données plus informatives.
Sam



Réponses:


176

Je ne sais pas si c'est ce que vous voulez dire, mais vous pouvez le faire:

plot(1:10, xaxt = "n", xlab='Some Letters')
axis(1, at=1:10, labels=letters[1:10])

qui vous donne alors le graphique:

entrez la description de l'image ici


Merci Tim! Pas exactement ce que je cherchais mais cela m'a aidé à faire ce que je voulais =)
Dani

5
x et y ont la même longueur dans ce cas. comment dessiner n étiquettes quand la longueur de l'autre axe est m?
Colbert Sesanker

2
juste pour référence: l' xaxt="n"option de la plotcommande supprime l'étiquetage de l'axe des x. Si cette option n'est pas incluse, axissera un NOOP.
Steen

Cela fonctionne, mais comment puis-je le faire pivoter pour qu'il soit vertical? las = 2 ne fonctionne pas.
runningbirds

J'ai essayé la solution. xaxt = "n"option a fonctionné pour les séries chronologiques de classe ts. Mais, dans le cas de séries chronologiques multiples (classe mts), cela ne fonctionnait pas.
Erdogan CEVHER

14

Vous pouvez également placer à l' labels = FALSEintérieur axis(...)et imprimer les étiquettes dans une commande séparée avec du texte. Avec cette option, vous pouvez faire pivoter le texte du texte au cas où vous en auriez besoin

lablist<-as.vector(c(1:10))
axis(1, at=seq(1, 10, by=1), labels = FALSE)
text(seq(1, 10, by=1), par("usr")[3] - 0.2, labels = lablist, srt = 45, pos = 1, xpd = TRUE)

Explication détaillée ici

Image avec étiquettes pivotées


Le lien vers detailed explanationest mort
javadba
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.