Ggplot2의 누적 막대 차트에서 막대를 재정렬하는 방법


다음 기본 구문을 사용하여 ggplot2의 누적 막대 차트에서 막대 위치를 재정렬할 수 있습니다.

 #specify order of bars (from top to bottom)
df$fill_var <- factor(df$fill_var, levels=c(' value1 ', ' value2 ', ' value3 ', ...))

#create stacked bar chart
ggplot(df, aes(x=x_var, y=y_var, fill=fill_var)) + 
    geom_bar(position=' stack ', stat=' identity ')

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

예: ggplot2의 누적 막대 차트에서 막대 재정렬

서로 다른 농구 선수들이 득점한 점수를 보여주는 다음과 같은 데이터 프레임이 R에 있다고 가정해 보겠습니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 position=c('G', 'F', 'C', 'G', 'F', 'C', 'G', 'F', 'C'),
                 points=c(22, 12, 10, 30, 12, 17, 28, 23, 20))

#view data frame
df

  team position points
1 AG 22
2 AF12
3 AC 10
4 BG 30
5 BF 12
6 BC 17
7 GC 28
8 CF 23
9 CC 20

각 팀의 플레이어가 득점한 점수를 시각화하기 위해 누적 막대 차트를 생성하면 ggplot2는 자동으로 막대를 알파벳 순서로 쌓습니다.

 library (ggplot2)

#create stacked bar chart
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' stack ', stat=' identity ') 

각 누적 막대는 알파벳 순서로 위치(위에서 아래)를 표시합니다.

특정 방식으로 막대를 재배열하려면 위치 변수를 요인으로 변환하고 레벨 인수를 사용하여 누적 막대 차트에서 막대가 있어야 하는 순서(위에서 아래로)를 지정할 수 있습니다.

 library (ggplot2)

#convert 'position' to factor and specify level order
df$position <- factor(df$position, levels=c(' F ', ' G ', ' C '))

#create stacked bar chart
ggplot(df, aes(x=team, y=points, fill=position)) + 
    geom_bar(position=' stack ', stat=' identity ') 

이제 막대는 레벨 인수에 지정한 정확한 순서대로(위에서 아래로) 쌓입니다.

추가 리소스

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

ggplot2에서 축 레이블을 회전하는 방법
ggplot2에서 축 나누기를 설정하는 방법
ggplot2에서 축 제한을 설정하는 방법
ggplot2에서 범례 레이블을 변경하는 방법

의견을 추가하다

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