Ggplot2에서 패싯 순서를 변경하는 방법(예제 포함)


다음 기본 구문을 사용하여 ggplot2에서 패싯의 순서를 지정할 수 있습니다.

 p+
  facet_grid(~factor(my_variable, levels=c(' val1 ', ' val2 ', ' val3 ', ...)))

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: ggplot2에서 패싯 순서 변경

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 points=c(8, 14, 20, 22, 25, 29, 30, 31),
                 assists=c(10, 5, 5, 3, 8, 6, 9, 12))

#view data frame
df

  team points assists
1 to 8 10
2 to 14 5
3 B 20 5
4 B 22 3
5 C 25 8
6 C 29 6
7 D 30 9
8 D 31 12

다음 코드는 Facet_grid()를 사용하여 각 팀의 어시스트 대 포인트의 산점도를 표시하는 그리드를 생성하는 방법을 보여줍니다.

 library (ggplot2)

#create multiple scatter plots using facet_grid
ggplot(df, aes (assists, points)) +
  geom_point() +
  facet_grid(.~team)

기본적으로 ggplot2는 데이터 프레임의 변수에 처음 나타나는 값을 기준으로 산점도를 순서대로 배치합니다.

그러나 팀을 요인 변수로 변환하고 레벨 인수를 사용하여 플롯에 팀을 배치해야 하는 순서를 지정할 수 있습니다.

 library (ggplot2)

#create multiple scatter plots using facet_grid with specific order
ggplot(df, aes (assists, points)) +
  geom_point() +
  facet_grid(~factor(team, levels=c(' C ', ' D ', ' A ', ' B '))) 

ggplot2에서 패싯 순서 변경

이제 포인트 클라우드는 레벨 인수에 지정한 순서(C, D, A, B)에 따라 정렬됩니다.

이 접근 방식을 사용할 때의 장점은 기본 데이터를 실제로 변경하지 않는다는 것입니다.

대신, facet_grid() 함수에서 레벨만 변경합니다.

추가 리소스

다음 튜토리얼에서는 ggplot2에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

ggplot2에서 글꼴 크기를 변경하는 방법
ggplot2에서 범례를 제거하는 방법
ggplot2에서 축 레이블을 회전하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다