Czy można ustawić tylko dolną granicę limitu dla skali ciągłej? Chcę, aby wszystkie moje wykresy były oparte na 0, bez konieczności określania górnej granicy.
na przykład
+ scale_y_continuous(minlim=0)
Możesz użyć expand_limits
ggplot(mtcars, aes(wt, mpg)) + geom_point() + expand_limits(y=0)
Oto porównanie tych dwóch:
expand_limits
expand_limits
Od wersji 1.0.0 programu ggplot2
możesz określić tylko jeden limit, a drugi będzie taki, jak zostałby normalnie określony, ustawiając drugi limit na NA
. Takie podejście pozwoli zarówno na rozszerzenie, jak i skrócenie zakresu osi.
ggplot(mtcars, aes(wt, mpg)) + geom_point() +
scale_y_continuous(limits = c(0, NA))
podanie go za pomocą ylim(c(0, NA))
daje identyczną liczbę.
Co powiesz na używanie
aes(ymin=0)
, jak w:ggplot(mtcars, aes(wt, mpg)) + geom_point() + aes(ymin=0)
źródło
geom_density
daje miError: stat_bin() must not be used with a y aesthetic
lub po umieszczeniu wewnątrzgeom_density
,Warning: Ignoring unknown aesthetics: ymin
(ten ostatni jest w pełni expected)Możesz również wypróbować następujący kod, który da ci minimalną oś Y na zero, a także bez dodatkowej przerwy między osią x a minimalną wartością y.
scale_y_continuous(limits = c(0, NA), expand = c(0,0))
źródło
coord_cartesian()
zamiast tego?Nie sądzę, że możesz to zrobić bezpośrednio. Aby obejść ten problem, możesz naśladować sposób, w jaki ggplot2 określa górną granicę:
scale_y_continuous(limits=c(0, max(mydata$y) * 1.1))
źródło