R ggplot2 facet_grid와 유사한 결과이지만 독립적 인 열

안토니

두 치료 그룹의 다른 개인에 대한 몇 가지 측정 값을 플로팅하고 싶습니다. 첫 번째 치료를위한 열과 두 번째 치료를위한 두 개의 열을 보여 드리고 싶습니다. 각 열에는 해당 그룹의 각 개인에 대한 플롯이 있습니다. 이 같은:

require(ggplot2)
t <- seq(from=0, to=10, length.out=100)
ids <- c(1, 17, 22, 4, 55, 74, 88)
treatment <- c('A', 'A', 'A', 'B', 'B', 'B', 'B')
df <- NULL
for (i in 1:length(ids))
    df <- rbind(df, data.frame(time=t, treatment=treatment[i], id=ids[i], value=rnorm(length(t))))
ggplot(df, aes(y=value, x=time)) +
    geom_line() +
    facet_grid(id ~ treatment, scale='free_y')

생산하는

결과 플롯

ID는 거의 확실하게 정렬되지 않으므로 중간에 여러 개의 빈 그래프가 표시됩니다. ID는 어쨌든 동일한 개인에 해당하지 않으므로 정렬 할 필요가 없습니다. 두 열에서 ID가 독립적이기를 원합니다. 지나치게 해키에 의지하지 않고 ggplot에서 이것을 수행하는 편리한 방법이 있습니까? 아니면 다른 플롯을 나란히 보면서 붙어 있습니까? 나는 그들에게 간격을 제거하지만 행 레이블의 유용성을 제거하는 "의사"ID를 줄 수 있습니다.

마크 피터슨

이것은 단지 머리 해키,하지만 당신은 다음 그룹과 ID를 모두 새 변수를 생성 할 수 있습니다 facet_wrap대신의 사용에 facet_grid. 유일한 해키 부분은 각 그룹에 동일한 수의 개인이 있는지 확인하는 것입니다 (여기서는 빈 사용자에 대한 자리 표시 자 추가).

# Generate a label with the individual and id
df$label <-
  paste(df$treatment
        , df$id
        , sep = ": ")

# Count the number of individuals in each treatment
counts <-
  by(df$id, df$treatment, function(x){length(unique(x))})


# For each group, check how many there are
# If it is less than the max, add a dummy row as a placeholder
for(i in names(counts)){
  if(counts[i] < max(counts)){
    df <- rbind(df,data.frame(time=0, treatment=i, id=NA, value=0, label= paste(i, "holder", 1:(max(counts) - counts[i]))))
  }
}

# Plot the result
ggplot(df, aes(y=value, x=time)) +
  geom_line() +
  # Facet on the contstructed label
  facet_wrap(~label
             , scale='free_y'
             # Make sure that you put them in columns, not rows
             , dir = "v"
             # Set the number of columns to be the number of groups
             , ncol = length(unique(df$treatment)))

여기에 이미지 설명 입력

레이블을 측면에 유지하려면 각 그룹의 개인을 나타내는 공동 레이블을 구성 할 수 있습니다. 라벨 구성은 약간 엉망이지만 유연해야한다고 생각합니다. 위에서 생성 한 추가 행을 포함시킨 후에는 이것을 실행하고 싶지 않을 것입니다.

theIndOrders <-
  split(df$id,df$treatment) %>%
  lapply(function(x){
    1:(length(unique(x))) %>%
      setNames(sort(unique(x)))
  }) %>%
  unlist

myLabels <-
  split(names(theIndOrders), theIndOrders) %>%
  sapply(paste, collapse = "; ")


df$group <-
  theIndOrders[paste(df$treatment,df$id, sep = ".")]

df$myLab <-
  myLabels[df$group]


ggplot(df, aes(y=value, x=time)) +
  geom_line() +
  # Facet on the contstructed label
  facet_grid(myLab ~ treatment)

여기에 이미지 설명 입력

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 facet_grid 플롯, ggplot2 R에서 동일한 패널 높이

분류에서Dev

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

분류에서Dev

ggplot2 facet_grid : geom_col에서 열 사이의 다른 간격을 수정하는 방법

분류에서Dev

ggplot : facet_grid이지만 하나의 요인 수준을 참조로 사용

분류에서Dev

연속 형 및 범주 형 변수에 ggplot2 및 facet_grid 사용 (R)

분류에서Dev

`ggplot2`의`annotate`가`facet_grid`와 결합 될 때 오류를보고합니다.

분류에서Dev

패싯 제목이있는 ggplot2 facet_grid

분류에서Dev

독립적 인 쿼리를 WITH와 결합

분류에서Dev

ggplot의 facet_grid와 bmrs conditional_effects 결합

분류에서Dev

ggplot에서 facet_grid와 수평 막대 결합

분류에서Dev

Swift 3 : 확장자와 독립적 인 파일 이름 배열 정렬

분류에서Dev

ggplot2 : geom_violin (), geom_text () with facet_grid ()를 사용하여 NA를 제외한 각 요소의 총 행 수를 인쇄합니다.

분류에서Dev

ggplot2에서 facet_grid () 함수를 사용할 때 labeller () 함수를 사용하여 패싯의 레이블에 표시 할 열 합계를 가져 오는 방법

분류에서Dev

SQL : 열과 독립적 인 특정 값이있는 행 선택

분류에서Dev

R : 'splinefun'및 ggplot2 'stat_function'과 함께 시계열 데이터 사용

분류에서Dev

R : facet_grid (ggplot)의 t.test

분류에서Dev

ggplot2 facet_wrap의 열에서 여러 패싯 스트립 결합

분류에서Dev

변경 주문 마진이 facet_grid ggplot2에 표시됩니까?

분류에서Dev

ggplot2 : facet_grid에서 x 축 레이블의 조건부 서식

분류에서Dev

r-ggplot2에서 facet_grid를 사용하여 길이가 긴 레이블을 어떻게 얻을 수 있습니까?

분류에서Dev

R : 이항 결과에 대한 ggplot2 Barplot

분류에서Dev

R // ggplot2 : facet_wrap 및 for 루프 결합시 동적 제목

분류에서Dev

ggplot2 facet_grid를 사용하여 데이터가없는 패싯에 주석을 달 수 있습니까?

분류에서Dev

R-ggplot geom_smooth facet_grid CI가 표시되지 않음

분류에서Dev

C ++에서와 같이 R에 여러 개의 독립적 인 난수 생성기를 사용할 수 있습니까?

분류에서Dev

Indirect (), list1 내용과 독립적 인 list2 이름?

분류에서Dev

ggplot2의 facet_grid 오류

분류에서Dev

y 매핑이 다른 ggplot facet_grid

분류에서Dev

문자열 번호 작업이 문화에 독립적인지 확인

Related 관련 기사

  1. 1

    다른 facet_grid 플롯, ggplot2 R에서 동일한 패널 높이

  2. 2

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

  3. 3

    ggplot2 facet_grid : geom_col에서 열 사이의 다른 간격을 수정하는 방법

  4. 4

    ggplot : facet_grid이지만 하나의 요인 수준을 참조로 사용

  5. 5

    연속 형 및 범주 형 변수에 ggplot2 및 facet_grid 사용 (R)

  6. 6

    `ggplot2`의`annotate`가`facet_grid`와 결합 될 때 오류를보고합니다.

  7. 7

    패싯 제목이있는 ggplot2 facet_grid

  8. 8

    독립적 인 쿼리를 WITH와 결합

  9. 9

    ggplot의 facet_grid와 bmrs conditional_effects 결합

  10. 10

    ggplot에서 facet_grid와 수평 막대 결합

  11. 11

    Swift 3 : 확장자와 독립적 인 파일 이름 배열 정렬

  12. 12

    ggplot2 : geom_violin (), geom_text () with facet_grid ()를 사용하여 NA를 제외한 각 요소의 총 행 수를 인쇄합니다.

  13. 13

    ggplot2에서 facet_grid () 함수를 사용할 때 labeller () 함수를 사용하여 패싯의 레이블에 표시 할 열 합계를 가져 오는 방법

  14. 14

    SQL : 열과 독립적 인 특정 값이있는 행 선택

  15. 15

    R : 'splinefun'및 ggplot2 'stat_function'과 함께 시계열 데이터 사용

  16. 16

    R : facet_grid (ggplot)의 t.test

  17. 17

    ggplot2 facet_wrap의 열에서 여러 패싯 스트립 결합

  18. 18

    변경 주문 마진이 facet_grid ggplot2에 표시됩니까?

  19. 19

    ggplot2 : facet_grid에서 x 축 레이블의 조건부 서식

  20. 20

    r-ggplot2에서 facet_grid를 사용하여 길이가 긴 레이블을 어떻게 얻을 수 있습니까?

  21. 21

    R : 이항 결과에 대한 ggplot2 Barplot

  22. 22

    R // ggplot2 : facet_wrap 및 for 루프 결합시 동적 제목

  23. 23

    ggplot2 facet_grid를 사용하여 데이터가없는 패싯에 주석을 달 수 있습니까?

  24. 24

    R-ggplot geom_smooth facet_grid CI가 표시되지 않음

  25. 25

    C ++에서와 같이 R에 여러 개의 독립적 인 난수 생성기를 사용할 수 있습니까?

  26. 26

    Indirect (), list1 내용과 독립적 인 list2 이름?

  27. 27

    ggplot2의 facet_grid 오류

  28. 28

    y 매핑이 다른 ggplot facet_grid

  29. 29

    문자열 번호 작업이 문화에 독립적인지 확인

뜨겁다태그

보관