Comment puis-je modifier l'espacement des marques de contrôle sur l'axe d'un graphique ?
Quels paramètres dois-je utiliser avec la base plot ou avec rgl
?
Comment puis-je modifier l'espacement des marques de contrôle sur l'axe d'un graphique ?
Quels paramètres dois-je utiliser avec la base plot ou avec rgl
?
Il existe au moins deux façons d'y parvenir en graphique de base (mes exemples concernent l'axe des x, mais fonctionnent de la même manière pour l'axe des y) :
Utilisez par(xaxp = c(x1, x2, n))
ou plot(..., xaxp = c(x1, x2, n))
pour définir la position ( x1
& x2
) des repères extrêmes et le nombre d'intervalles entre les repères ( n
). En conséquence, n+1
est le nombre de points de repère dessinés. (Ceci ne fonctionne que si vous n'utilisez pas d'échelle logarithmique, pour le comportement avec des échelles logarithmiques voir ?par
.)
Vous pouvez supprimer complètement le dessin de l'axe et ajouter les marques de tique plus tard avec axis()
.
Pour supprimer le dessin de l'axe, utilisez plot(... , xaxt = "n")
.
Ensuite, appelez axis()
avec side
, at
et labels
: axis(side = 1, at = v1, labels = v2)
. Avec side
se référant au côté de l'axe (1 = axe des x, 2 = axe des y), v1
étant un vecteur contenant la position des ticks (par exemple, c(1, 3, 5)
si votre axe va de 0 à 6 et que vous voulez trois notes), et v2
un vecteur contenant les étiquettes pour les marques de tic-tac spécifiées (doit être de la même longueur que v1
par exemple, c("group a", "group b", "group c")
). Voir ?axis
et ma réponse mise à jour à un message sur stats.stackexchange pour un exemple de cette méthode .
Existe-t-il un moyen de contrôler le nombre de décimales que R utilise pour les étiquettes numériques des tics. Je viens d'essayer labels=c(0.0,0.5,1.0,1.5,2.0) mais dans le graphique, les étiquettes étaient 0, 0.5, 1, 1.5, etc. Existe-t-il un moyen d'obtenir le même nombre de décimales sur toutes les étiquettes ? J'ai essayé labels=round(seq(0,2,0.5),1) mais les nombres entiers n'avaient toujours pas de décimales.
Essayer des fonctions formatC
ou prettyNum
pour créer des vecteurs de caractères à transmettre à labels
. Par exemple : formatC(seq(0,2,0.5), digits = 1, format = "f")
+Cela fait un moment que je cherche à trouver cela. Il s'avère cependant que n
est en fait le nombre de points de repère -1
. Je voulais des coches de 1
à 9
et a dû mettre xaxp = c(1, 9, 8)
ou je n'obtiendrais pas le résultat souhaité.
Bonjour, j'ai des données de date sur l'axe x, (chron) Dans mon cas, je pense qu'il devrait y avoir un meilleur moyen que d'écrire une ligne avec disons 25 dates complètes. Et si je voulais que les dates soient écrites verticalement sur l'axe x, c'est-à-dire perpendiculairement ?
Regardez le paramètre graphique las
dans ?par qui peut être ajouté à un appel à axis()
et qui contrôle l'orientation des étiquettes à cocher. Par exemple axis(side = 1, at = c(1,5,10), las = 2)
. Vous pourriez chercher à savoir s'il existe un axis()
pour les objets chronologiques ou envisagez d'utiliser les classes Date et Heure de R, qui disposent déjà de la fonction axis()
fonctions (par exemple axis.Date()
pour la classe ''Date'').
J'ai un ensemble de données dont l'axe des x est le temps et l'axe des y l'intensité. Je dois d'abord supprimer tous les axes par défaut, sauf les étiquettes des axes avec :
plot(Time,Intensity,axes=F)
Puis je reconstruis les éléments de l'intrigue avec :
box() # create a wrap around the points plotted
axis(labels=NA,side=1,tck=-0.015,at=c(seq(from=0,to=1000,by=100))) # labels = NA prevents the creation of the numbers and tick marks, tck is how long the tick mark is.
axis(labels=NA,side=2,tck=-0.015)
axis(lwd=0,side=1,line=-0.4,at=c(seq(from=0,to=1000,by=100))) # lwd option sets the tick mark to 0 length because tck already takes care of the mark
axis(lwd=0,line=-0.4,side=2,las=1) # las changes the direction of the number labels to horizontal instead of vertical.
Donc, at = c(...)
spécifie la collection de positions pour placer les marques de tic-tac. Ici, je voudrais mettre les marques à 0, 100, 200,..., 1000. seq(from =...,to =...,by =...)
me donne le choix des limites et des incréments.
Et si vous ne voulez pas que R ajoute des décimales ou des zéros, vous pouvez l'empêcher de dessiner l'axe des x ou l'axe des y ou les deux en utilisant ...axt. Ensuite, vous pouvez ajouter vos propres tics et étiquettes :
plot(x, y, xaxt="n")
plot(x, y, yaxt="n")
axis(1 or 2, at=c(1, 5, 10), labels=c("First", "Second", "Third"))
Bien sûr, vous pouvez activer et désactiver cette fonction de manière programmatique avec une variable flag
con yaxt=flag
MAIS le truc, c'est que si vous voulez activer les étiquettes standard, il faut définir flag <- "s"
et si vous ne voulez pas les étiquettes standard, utilisez alors flag <- "n"
(J'ajoute ceci, parce qu'il m'a fallu du temps pour trouver "s")
Je viens de découvrir le Hmisc paquet :
Contient de nombreuses fonctions utiles à l'analyse des données, des graphiques de haut niveau, des opérations utilitaires, des fonctions permettant de calculer la taille et la puissance des échantillons, d'importer et d'annoter des ensembles de données, d'imputer les valeurs manquantes, de créer des tableaux avancés, de regrouper des variables, de manipuler des chaînes de caractères, de convertir des objets R en code LaTeX et html, et de recoder des variables.
library(Hmisc)
plot(...)
minor.tick(nx=10, ny=10) # make minor tick marks (without labels) every 10th
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Regardez stackoverflow.com/questions/34519823/minor-tick-position-in-r pour la taille des ticks