programing

축 눈금 수 증가

newstyles 2023. 7. 3. 22:37

축 눈금 수 증가

일부 데이터에 대한 플롯을 생성하고 있지만, 눈금 수가 너무 적어서 판독값을 더 정확하게 해야 합니다.

ggplot2에서 축 눈금 수를 늘릴 수 있는 방법이 있습니까?

ggplot에 벡터를 축 눈금으로 사용하도록 지시할 수 있지만, 제가 원하는 것은 모든 데이터에 대해 눈금 수를 늘리는 것입니다.즉, 저는 데이터에서 틱 수를 계산하기를 원합니다.

아마도 ggplot은 내부적으로 알고리즘을 사용하여 이것을 수행하지만, 제가 원하는 것에 따라 어떻게 변화하는지 찾을 수 없었습니다.

다음을 수정하여 ggplot 기본 척도를 재정의할 수 있습니다.scale_x_continuous및/또는scale_y_continuous예:

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

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

제공되는 이점이 있습니다.

enter image description here

스케일을 오버라이드하면 다음과 같은 이점을 얻을 수 있습니다.

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))

enter image description here

그림의 특정 부분을 단순히 "확대"하려면 다음을 확인합니다.xlim()그리고.ylim()각각 다음과 같다.다른 주장을 이해하기 위한 좋은 통찰력도 여기에서 찾을 수 있습니다.

Daniel Krizian의 코멘트를 기반으로, 당신은 또한 다음의 기능을 사용할 수 있습니다.scales자동으로 가져오는 라이브러리:

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))

원하는 눈금 수를 입력하기만 하면 됩니다.n.


데이터 변수를 다시 지정해야 하므로 약간 덜 유용한 솔루션인 기본 제공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))

다음에 함수 인수를 제공할 수 있습니다.scaleggplot은 이 함수를 사용하여 눈금 위치를 계산합니다.

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))

v3.3.0부터 시작하여ggplot2선택권이 있습니다.n.breaks자동으로 휴식 시간을 생성합니다.scale_x_continuous그리고.scale_y_continuous

    library(ggplot2)

    plt <- ggplot(mtcars, aes(x = mpg, y = disp)) +
      geom_point()

    plt + 
      scale_x_continuous(n.breaks = 5)

enter image description here

    plt + 
      scale_x_continuous(n.breaks = 10) +
      scale_y_continuous(n.breaks = 10)

enter image description here

또한.

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

빈 축 또는 이산 축척 데이터(즉, 반올림이 필요하지 않음)에 대해 작동합니다.

이 질문에 대한 답변과 Rgg 그림에서 X축과 Y축의 레이블을 동일한 간격으로 설정하는 방법은 무엇입니까?

mtcars %>% 
  ggplot(aes(mpg, disp)) +
  geom_point() +
  geom_smooth() + 
  scale_y_continuous(limits = c(0, 500),
                     breaks = seq(0,500,50))  +
  scale_x_continuous(limits = c(0,40),
                     breaks = seq(0,40,5))

언급URL : https://stackoverflow.com/questions/11335836/increase-number-of-axis-ticks