Jak mogę ustawić początek / przechwycenie osi Y i osi X w ggplot2?
Linia osi x powinna znajdować się dokładnie na y=Z
.
Z Z=0
lub inną podaną wartością.
Jak mogę ustawić początek / przechwycenie osi Y i osi X w ggplot2?
Linia osi x powinna znajdować się dokładnie na y=Z
.
Z Z=0
lub inną podaną wartością.
Odpowiedzi:
xlim
i ylim
nie tnij tego tutaj. Trzeba użyć expand_limits
, scale_x_continuous
i scale_y_continuous
. Próbować:
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
p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
Być może będziesz musiał trochę dostosować rzeczy, aby upewnić się, że punkty nie zostaną ucięte (zobacz na przykład punkt w x = 5
i y = 5
.
expand=expand_scale(mult=c(0,0.1))
aby nadal uzyskać wyściółkę na górnych końcach: stackoverflow.com/a/59056123/8400969
Po prostu dodaj je do swojego ggplot:
+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
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
p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
Na koniec należy bardzo uważać, aby przypadkowo nie wykluczyć danych z wykresu . Na przykład, a position = 'dodge'
może spowodować, że słupek zostanie całkowicie pominięty na wykresie (np. Jeśli jego wartość wynosi zero i zaczynasz oś od zera), więc możesz go nie widzieć i nawet nie wiedzieć, że tam jest. Zalecam najpierw wykreślenie danych w całości, zbadanie, a następnie skorzystanie z powyższej wskazówki, aby poprawić estetykę działki.
scale_x_continuous(expand = c(0, 0), limits = c(0,5))
jakoś bez tego nie zadziałało