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=0lub 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=0lub inną podaną wartością.
Odpowiedzi:
xlimi ylimnie tnij tego tutaj. Trzeba użyć expand_limits, scale_x_continuousi 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 = 5i 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