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 ')))
이제 포인트 클라우드는 레벨 인수에 지정한 순서(C, D, A, B)에 따라 정렬됩니다.
이 접근 방식을 사용할 때의 장점은 기본 데이터를 실제로 변경하지 않는다는 것입니다.
대신, facet_grid() 함수에서 레벨만 변경합니다.
추가 리소스
다음 튜토리얼에서는 ggplot2에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
ggplot2에서 글꼴 크기를 변경하는 방법
ggplot2에서 범례를 제거하는 방법
ggplot2에서 축 레이블을 회전하는 방법