Je génère des graphiques pour certaines données, mais le nombre de ticks est trop petit, il me faut plus précision à la lecture.
Existe-t-il un moyen d'augmenter le nombre de ticks d'axes dans ggplot2?
Je sais que je peux dire à ggplot d'utiliser un vecteur comme ticks d'axe, mais ce que je veux, c'est augmenter le nombre de ticks, pour toutes les données. En d'autres termes, je veux que le nombre de ticks soit calculé à partir des données.
Peut-être que ggplot le fait en interne avec un algorithme, mais je n'ai pas trouvé comment il le fait, pour changer en fonction de ce que je veux.
Vous pouvez remplacer les échelles par défaut de ggplots en modifiant scale_x_continuous
et/ou scale_y_continuous
. Par exemple:
library(ggplot2)
dat <- data.frame(x = rnorm(100), y = rnorm(100))
ggplot(dat, aes(x,y)) +
geom_point()
Vous donne ceci:
Et outrepasser les échelles peut vous donner quelque chose comme ceci:
ggplot(dat, aes(x,y)) +
geom_point() +
scale_x_continuous(breaks = round(seq(min(dat$x), max(dat$x), by = 0.5),1)) +
scale_y_continuous(breaks = round(seq(min(dat$y), max(dat$y), by = 0.5),1))
Si vous voulez simplement "zoomer" sur une partie spécifique d'un tracé, regardez respectivement xlim()
et ylim()
. Une bonne perspicacité peut également être trouvée ici pour comprendre également les autres arguments.
Sur la base de commentaire de Daniel Krizian , vous pouvez également utiliser la fonction pretty_breaks
de la bibliothèque scales
, qui est importée automatiquement:
_ggplot(dat, aes(x,y)) + geom_point() +
scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) +
scale_y_continuous(breaks = scales::pretty_breaks(n = 10))
_
Tout ce que vous avez à faire est d'insérer le nombre de ticks souhaité pour n
.
Une solution légèrement moins utile (puisque vous devez spécifier à nouveau la variable de données), vous pouvez utiliser la fonction intégrée pretty
:
_ggplot(dat, aes(x,y)) + geom_point() +
scale_x_continuous(breaks = pretty(dat$x, n = 10)) +
scale_y_continuous(breaks = pretty(dat$y, n = 10))
_
Vous pouvez fournir un argument de fonction à scale
, et ggplot utilisera cette fonction pour calculer les emplacements des ticks.
library(ggplot2)
dat <- data.frame(x = rnorm(100), y = rnorm(100))
number_ticks <- function(n) {function(limits) pretty(limits, n)}
ggplot(dat, aes(x,y)) +
geom_point() +
scale_x_continuous(breaks=number_ticks(10)) +
scale_y_continuous(breaks=number_ticks(10))
Aditionellement,
ggplot(dat, aes(x,y)) +
geom_point() +
scale_x_continuous(breaks = seq(min(dat$x), max(dat$x), by = 0.05))
Fonctionne pour les données en abscisse ou à échelle discrète (c.-à-d. Sans arrondir).