Ggplot2 막대 차트에서 막대를 정렬하는 방법


기본적으로 ggplot2는 막대 차트의 막대를 다음 순서로 정렬합니다.

  • 요인변수는 요인 수준에 따라 분류됩니다.
  • 문자 변수는 알파벳순으로 나열됩니다.

그러나 다른 특정 순서로 막대를 주문하고 싶을 수도 있습니다.

이 튜토리얼에서는 다음 데이터 프레임을 사용하여 이를 수행하는 방법을 설명합니다.

 #create data frame
df <- data. frame (team = c('B', 'B', 'B', 'A', 'A', 'C'),
                 points = c(12, 28, 19, 22, 32, 45),
                 rebounds = c(5, 7, 7, 12, 11, 4))

#view structure of data frame
str(df)

'data.frame': 6 obs. of 3 variables:
 $ team: Factor w/ 3 levels "A","B","C": 2 2 2 1 1 3
 $ points: num 12 28 19 22 32 45
 $rebounds: num 5 7 7 12 11 4

예 1: 특정 요인 순서에 따라 막대 순서를 지정합니다.

팀별 빈도를 표시하기 위해 막대 차트를 만들려고 하면 막대가 자동으로 알파벳 순서로 나타납니다.

 library (ggplot2)

ggplot(df, aes(x=team)) +
  geom_bar ()

다음 코드는 막대를 특정 순서로 정렬하는 방법을 보여줍니다.

 #specify factor level order
df$team = factor(df$team, levels = c('C', 'A', 'B'))

#create bar chart again 
ggplot(df, aes(x=team)) +
  geom_bar ()

예시 2: 숫자 값을 기반으로 한 주문 표시줄

숫자 값을 기준으로 막대를 정렬할 수도 있습니다. 예를 들어, 다음 코드는 reorder() 함수를 사용하여 가장 높은 빈도에서 가장 낮은 빈도로 막대의 순서를 지정하는 방법을 보여줍니다.

 library (ggplot2)

ggplot(df, aes(x= reorder (team, team, function (x)-length(x)))) +
  geom_bar () 

ggplot2 막대 차트의 주문 막대

reorder() 함수의 function() 호출에서 빼기 기호를 제거하여 가장 작은 빈도에서 가장 큰 빈도로 막대를 정렬할 수도 있습니다.

 library (ggplot2)

ggplot(df, aes(x= reorder (team, team, function (x) length(x)))) +
  geom_bar () 

ggplot2 막대 차트에서 가장 작은 것부터 가장 큰 것까지 막대 순서를 지정합니다.

추가 리소스

geom_bar() 함수에 대한 문서입니다 .
reorder() 함수에 대한 문서입니다 .
통계에 관한 R 튜토리얼의 전체 목록입니다 .

의견을 추가하다

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