Zwiększ liczbę kleszczy osi

Generuję wykresy dla niektórych danych, ale liczba kleszczy jest zbyt mała, potrzebuję więcej precyzji przy odczycie.

Czy Jest jakiś sposób na zwiększenie liczby kleszczy osi w ggplot2?

Wiem, że mogę powiedzieć ggplot, aby używał wektora jako osi kleszczy, ale chcę zwiększyć liczbę kleszczy dla wszystkich danych. Innymi słowy, chcę, aby liczba kleszczy była obliczana na podstawie danych.

Ewentualnie ggplot zrobić to wewnętrznie z jakiegoś algorytmu, ale nie mogłem dowiedz się, jak to robi, aby zmienić zgodnie z tym, co chcę.

 135
Author: zx8754, 2012-07-05

4 answers

Możesz zastąpić domyślne skale ggplots modyfikując scale_x_continuous i/lub scale_y_continuous. Na przykład:

library(ggplot2)
dat <- data.frame(x = rnorm(100), y = rnorm(100))

ggplot(dat, aes(x,y)) +
  geom_point()

Daje Ci to:

Tutaj wpisz opis obrazka

A przekroczenie skali może dać coś takiego:

ggplot(dat, aes(x,y)) +
  geom_point() +
  scale_x_continuous(breaks = round(seq(min(dat$x), max(dat$x), by = 0.5),1)) +
  scale_y_continuous(breaks = round(seq(min(dat$y), max(dat$y), by = 0.5),1))

Tutaj wpisz opis obrazka

Jeśli chcesz po prostu "przybliżyć" konkretną część wykresu, spójrz odpowiednio na xlim() i ylim(). Dobry wgląd można również znaleźć tutaj , aby zrozumieć również inne argumenty.

 139
Author: Chase,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-04 22:15:36

Możesz użyć wbudowanej funkcji pretty:

ggplot(dat, aes(x,y)) + geom_point() +
scale_x_continuous(breaks = pretty(dat$x, n = 10)) +
scale_y_continuous(breaks = pretty(dat$y, n = 10))

Na podstawie komentarza Daniela Kriziana można również użyć pretty_breaks funkcja z biblioteki scales, która jest importowana automatycznie:

ggplot(dat, aes(x,y)) + geom_point() +
scale_x_continuous(breaks = scales::pretty_breaks(n = 10)) +
scale_y_continuous(breaks = scales::pretty_breaks(n = 10))

Wystarczy wpisać żądaną liczbę kleszczy.

 102
Author: slhck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:10

Możesz podać argument funkcji scale, A ggplot użyje ta funkcja do obliczania lokalizacji kleszczy.

library(ggplot2)
dat <- data.frame(x = rnorm(100), y = rnorm(100))
number_ticks <- function(n) {function(limits) pretty(limits, n)}

ggplot(dat, aes(x,y)) +
  geom_point() +
  scale_x_continuous(breaks=number_ticks(10)) +
  scale_y_continuous(breaks=number_ticks(10))
 54
Author: crowding,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-23 03:16:15

DODATKOWO,

ggplot(dat, aes(x,y)) +
geom_point() +
scale_x_continuous(breaks = seq(min(dat$x), max(dat$x), by = 0.05))

Działa dla binowanych lub dyskretnych skalowanych danych osi x (tzn. zaokrąglanie nie jest konieczne).

 2
Author: bmc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-29 16:28:24