92 votes

définir seulement la limite inférieure d'une limite pour ggplot

Est-il possible de définir uniquement la limite inférieure d'une limite pour une échelle continue ? Je veux que tous mes tracés soient basés sur 0 sans avoir besoin de spécifier la limite supérieure.

par exemple

+ scale_y_continuous(minlim=0)

135voto

Brian Diggs Points 22433

Vous pouvez utiliser expand_limits

ggplot(mtcars, aes(wt, mpg)) + geom_point() + expand_limits(y=0)

Voici une comparaison des deux :

  • sans expand_limits

  • avec expand_limits

À partir de la version 1.0.0 de ggplot2 vous pouvez spécifier une seule limite et faire en sorte que l'autre soit déterminée comme elle le serait normalement en fixant cette deuxième limite à NA . Cette approche permettra à la fois l'expansion et la troncature de la gamme d'axes.

ggplot(mtcars, aes(wt, mpg)) + geom_point() +
  scale_y_continuous(limits = c(0, NA))

en le spécifiant via ylim(c(0, NA)) donne un chiffre identique.

12voto

Josh O'Brien Points 68397

Que diriez-vous d'utiliser aes(ymin=0) comme dans :

ggplot(mtcars, aes(wt, mpg)) + geom_point() + aes(ymin=0)

8voto

Vous pouvez également essayer le code suivant qui vous donnera l'axe des y min à zéro et aussi sans l'écart supplémentaire entre l'axe des x et la valeur y min.

scale_y_continuous(limits = c(0, NA), expand = c(0,0))

-1voto

bdemarest Points 5495

Je ne pense pas que vous puissiez le faire directement. Mais comme solution de rechange, vous pouvez imiter la façon dont ggplot2 détermine la limite supérieure :

scale_y_continuous(limits=c(0, max(mydata$y) * 1.1))

Prograide.com

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.

Powered by:

X