Forcer l'origine à commencer à 0

Comment puis-je définir l'origine / interception de l'axe y et de l'axe x dans ggplot2?

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

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

91
demandé sur Jonas Stein 2012-12-04 14:58:38

2 réponses

xlim et ylim ne coupe pas ici. Vous avez besoin d'utiliser expand_limits, scale_x_continuous, et scale_y_continuous. Essayez:

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

entrez la description de l'image ici

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

entrez la description de l'image ici

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 à x = 5 et y = 5.

132
répondu A5C1D2H2I1M1N2O1R2T1 2012-12-04 11:27:03

Je comprends de la réponse de Hadley Wickham dans le lien ici qu'il n'est pas possible dans ggplot2 avoir les axes dans le milieu de votre graphique. Quelqu'un dans cette url a proposé de supprimer les axes standard et de les construire vous-même.

1
répondu lokxs 2018-07-20 14:32:30