다양한 y 축 스케일로 ggplot에서 facet_wrap을 사용하는 동안 이중 y 축

갈매기

facet_wrap을 사용하는 동안 ggplot2에서 여러 패널을 플롯하려고합니다. 두 개의 y 축을 갖고 싶습니다. 왼쪽 y 축 범위는 5 ~ 27이고 오른쪽 y 축 범위는 25 ~ 27입니다. 회귀선으로 모든 데이터 포인트를 표시하고 싶습니다. 그러나 플로팅 할 때 오른쪽 y 축의 변동이 다른 데이터 세트에 비해 낮으므로 평평한 선으로 나타납니다. 데이터의 변동이 명확하게 보이도록 오른쪽 y 축을 25에서 27로 유지하고 싶습니다. 이 코드 1을 사용 했지만 분류 할 수 없습니다. 어떤 도움이라도 대단히 감사합니다.

library(ggplot2)

scaleFactor <- max(d1$weeks) / max(d1$income)

ggplot(mtcars, aes(x=Year)) +
  geom_smooth(aes(y=weeks), method="loess", col="blue") +
  geom_smooth(aes(y=income * scaleFactor), method="loess", col="red") +
  scale_y_continuous(name="weeks", sec.axis=sec_axis(~./scaleFactor, name="income")) +
  theme(
    axis.title.y.left=element_text(color="blue"),
    axis.text.y.left=element_text(color="blue"),
    axis.title.y.right=element_text(color="red"),
    axis.text.y.right=element_text(color="red")
  )

인용구

Teunbrand

최대 값을 다시 조정하는 대신 데이터 범위를 겹치게 만드는 경우 다음을 시도 할 수 있습니다.

먼저 작업을 더 쉽게하기 위해 함수 팩토리를 만들 것입니다.

library(ggplot2)
library(scales)
#> Warning: package 'scales' was built under R version 4.0.3

# Function factory for secondary axis transforms
train_sec <- function(from, to) {
  from <- range(from)
  to   <- range(to)
  # Forward transform for the data
  forward <- function(x) {
    rescale(x, from = from, to = to)
  }
  # Reverse transform for the secondary axis
  reverse <- function(x) {
    rescale(x, from = to, to = from)
  }
  list(fwd = forward, rev = reverse)
}

그런 다음 함수 팩토리를 사용하여 데이터 및 보조 축에 대한 변환 함수를 만들 수 있습니다.

# Learn the `from` and `to` parameters
sec <- train_sec(mtcars$hp, mtcars$cyl)

다음과 같이 신청할 수 있습니다.

ggplot(mtcars, aes(x=disp)) +
  geom_smooth(aes(y=cyl), method="loess", col="blue") +
  geom_smooth(aes(y= sec$fwd(hp)), method="loess", col="red") +
  scale_y_continuous(name="cyl", sec.axis=sec_axis(~sec$rev(.), name="hp")) +
  theme(
    axis.title.y.left=element_text(color="blue"),
    axis.text.y.left=element_text(color="blue"),
    axis.title.y.right=element_text(color="red"),
    axis.text.y.right=element_text(color="red")
  )
#> `geom_smooth()` using formula 'y ~ x'
#> `geom_smooth()` using formula 'y ~ x'

다음은 다른 데이터 세트를 사용한 예입니다.

sec <- train_sec(economics$psavert, economics$unemploy)

ggplot(economics, aes(date)) +
  geom_line(aes(y = unemploy), colour = "blue") +
  geom_line(aes(y = sec$fwd(psavert)), colour = "red") +
  scale_y_continuous(sec.axis = sec_axis(~sec$rev(.), name = "psavert"))

reprex 패키지 (v1.0.0)에 의해 2021-02-04에 생성됨

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ggplot에서 facet_wrap을 사용하는 동안 y 축 크기 조정

분류에서Dev

amchart-동일한 X 축을 사용하는 다중 Y 축

분류에서Dev

x 및 y 축을 사용하면 ggplot2에서 로그 스케일링이 다릅니다.

분류에서Dev

Facet_wrap 및 scale = "free"가 예기치 않게 ggplot2에서 y 축을 0으로 중심에 둡니다.

분류에서Dev

facet_wrap ()을 사용할 때 ggplot에서 수동으로 축에 레이블 지정

분류에서Dev

R ggplot2에서 x 축을 제한 한 후 y 축 스케일을 자동으로 다시 계산하는 방법

분류에서Dev

자동 레이아웃을 사용하는 동안 Y 축에서 UIButton 이동

분류에서Dev

로그 스케일을 사용하는 동안 pyplot의 y 축에 새 눈금을 추가하는 방법이 있습니까?

분류에서Dev

스케일이 다양한 다중 Y 축이있는 누적 수평 플롯

분류에서Dev

ggplot2에서 facet_wrap (~ day)로 축 일일 시간 제한을 설정하는 방법

분류에서Dev

ggplot2에서 facet_grid ()를 사용할 때 일반적인 y 축 제한을 정의하는 방법

분류에서Dev

ggplot2에서 facet_wrap을 사용할 때 두 축에서 동일한 값을 통해 선형 선 추적

분류에서Dev

ggplot을 사용하여 facet_grid에서 다른 y 축 스케일을 설정하는 방법은 무엇입니까?

분류에서Dev

동일한 Y 축을 사용하여 동일한 그래프에서 파이썬 플롯으로 여러 줄

분류에서Dev

서로 다른 x 및 y 축 스케일로 두 개의 ggplot 오버레이

분류에서Dev

동일한 데이터 이중 시리즈에서 Highstock 이상한 y 축 스케일 차이

분류에서Dev

Y 축에 하나의 레이블이 있고 두 번째 레이블은 맨 위에 둡니다. 2 개의 변수와 함께 facet_wrap 사용

분류에서Dev

열의 모든 이름을 y 축으로 가져와 ggplot을 사용하여 동일한 그래프에 플로팅하는 방법은 무엇입니까?

분류에서Dev

다중 y 축 변환 스케일

분류에서Dev

y 범위가 다른 ggplot에서 이중 y 축을 그리는 방법은 무엇입니까?

분류에서Dev

tkinter에서 이미지를 클릭하는 동안 이미지의 x 축, y 축 값을 얻는 방법

분류에서Dev

matplotlib에서 .subplot을 사용하는 동안 제목, x 축 레이블 및 y 축 레이블을 추가하는 방법은 무엇입니까?

분류에서Dev

R>에서 이중 y 축으로 ggplot에 범례를 추가하는 방법

분류에서Dev

보조 축에 두 개의 변수를 플로팅하는 동안 단일 y 축 값을 가짐

분류에서Dev

matplotlib를 사용하는 다중 y 축이 작동하지 않습니다.

분류에서Dev

모든 facet_wrap에 x 및 y 축 추가

분류에서Dev

y 축이 0에서 시작하도록 강제하고 "break"를 삽입하고 ggplot2를 사용하여 큰 y 축을 갖습니다.

분류에서Dev

MATLAB에서 다른 플롯이지만 동일한 y 축을 병합하는 방법

분류에서Dev

Y 축 위로 이동하는 JavaScript Canvas

Related 관련 기사

  1. 1

    ggplot에서 facet_wrap을 사용하는 동안 y 축 크기 조정

  2. 2

    amchart-동일한 X 축을 사용하는 다중 Y 축

  3. 3

    x 및 y 축을 사용하면 ggplot2에서 로그 스케일링이 다릅니다.

  4. 4

    Facet_wrap 및 scale = "free"가 예기치 않게 ggplot2에서 y 축을 0으로 중심에 둡니다.

  5. 5

    facet_wrap ()을 사용할 때 ggplot에서 수동으로 축에 레이블 지정

  6. 6

    R ggplot2에서 x 축을 제한 한 후 y 축 스케일을 자동으로 다시 계산하는 방법

  7. 7

    자동 레이아웃을 사용하는 동안 Y 축에서 UIButton 이동

  8. 8

    로그 스케일을 사용하는 동안 pyplot의 y 축에 새 눈금을 추가하는 방법이 있습니까?

  9. 9

    스케일이 다양한 다중 Y 축이있는 누적 수평 플롯

  10. 10

    ggplot2에서 facet_wrap (~ day)로 축 일일 시간 제한을 설정하는 방법

  11. 11

    ggplot2에서 facet_grid ()를 사용할 때 일반적인 y 축 제한을 정의하는 방법

  12. 12

    ggplot2에서 facet_wrap을 사용할 때 두 축에서 동일한 값을 통해 선형 선 추적

  13. 13

    ggplot을 사용하여 facet_grid에서 다른 y 축 스케일을 설정하는 방법은 무엇입니까?

  14. 14

    동일한 Y 축을 사용하여 동일한 그래프에서 파이썬 플롯으로 여러 줄

  15. 15

    서로 다른 x 및 y 축 스케일로 두 개의 ggplot 오버레이

  16. 16

    동일한 데이터 이중 시리즈에서 Highstock 이상한 y 축 스케일 차이

  17. 17

    Y 축에 하나의 레이블이 있고 두 번째 레이블은 맨 위에 둡니다. 2 개의 변수와 함께 facet_wrap 사용

  18. 18

    열의 모든 이름을 y 축으로 가져와 ggplot을 사용하여 동일한 그래프에 플로팅하는 방법은 무엇입니까?

  19. 19

    다중 y 축 변환 스케일

  20. 20

    y 범위가 다른 ggplot에서 이중 y 축을 그리는 방법은 무엇입니까?

  21. 21

    tkinter에서 이미지를 클릭하는 동안 이미지의 x 축, y 축 값을 얻는 방법

  22. 22

    matplotlib에서 .subplot을 사용하는 동안 제목, x 축 레이블 및 y 축 레이블을 추가하는 방법은 무엇입니까?

  23. 23

    R>에서 이중 y 축으로 ggplot에 범례를 추가하는 방법

  24. 24

    보조 축에 두 개의 변수를 플로팅하는 동안 단일 y 축 값을 가짐

  25. 25

    matplotlib를 사용하는 다중 y 축이 작동하지 않습니다.

  26. 26

    모든 facet_wrap에 x 및 y 축 추가

  27. 27

    y 축이 0에서 시작하도록 강제하고 "break"를 삽입하고 ggplot2를 사용하여 큰 y 축을 갖습니다.

  28. 28

    MATLAB에서 다른 플롯이지만 동일한 y 축을 병합하는 방법

  29. 29

    Y 축 위로 이동하는 JavaScript Canvas

뜨겁다태그

보관