web-dev-qa-db-fra.com

Forcer l'origine pour commencer à 0

Comment définir l'origine/l'interception de l'axe des ordonnées et de l'axe des abscisses dans ggplot2?

La ligne de l'axe des x devrait être exactement à y=Z.

Avec Z=0 ou une autre valeur donnée.

115
Jonas Stein

xlim et ylim ne le coupe pas ici. Vous devez utiliser expand_limits, scale_x_continuous, et scale_y_continuous. Essayer:

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for

enter image description here

p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))

enter image description here

Vous devrez peut-être ajuster un peu les choses pour vous assurer que les points ne sont pas coupés (voir, par exemple, le point situé à x = 5 et y = 5.

163

Si je comprends bien la réponse de Hadley Wickham au lien ici , il n’est pas possible dans ggplot2 d’avoir les axes au milieu de votre graphique. Quelqu'un dans cette URL a proposé de supprimer les axes standard et de les construire vous-même.

1
lokxs