막대그래프 오름차순 정렬

데이터 준비

막대그래프의 기본 정렬 순서를 이해하고, 데이터 값에 따라 정렬하는 방법을 알아보겠습니다. 이번 예제에서는 iris 데이터셋을 사용하여 붓꽃 종류별 평균 꽃받침 너비를 나타내는 그래프를 작성하겠습니다. 기본적으로는 종류가 알파벳 순으로 정렬됩니다.

# 패키지 로드
library(ggplot2)
library(dplyr)

# 데이터 준비
data <- iris %>%
  group_by(Species) %>%
  summarise(`꽃받침 너비` = mean(Sepal.Width)) %>%
  rename(종류 = Species)

# 기본 그래프
ggplot(data, aes(x = 종류, y = `꽃받침 너비`, label = round(`꽃받침 너비`, 2))) +
  geom_col(width = 0.6, fill = "#56B4E9") +
  geom_text(vjust = -0.5) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.1))) +
  theme_bw()

Iris 품종별 꽃받침 너비를 비교한 그래프

막대그래프를 값에 따라 정렬하기

꽃받침 너비를 기준으로 막대그래프를 정렬하려면, reorder를 사용하면 됩니다.

1. 내림차순 정렬

값이 큰 순서대로 정렬하려면 reorder(종류, -`꽃받침 너비`)를 사용합니다.

ggplot(data, aes(x = reorder(종류, -`꽃받침 너비`), y = `꽃받침 너비`, label = round(`꽃받침 너비`, 2))) +
  geom_col(width = 0.6, fill = "#56B4E9") +
  geom_text(vjust = -0.5) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.1))) +
  theme_bw()

내림차순 정렬한 막대그래프

2. 오름차순 정렬

값이 작은 순서대로 정렬하려면 reorder(종류,`꽃받침 너비`)를 사용합니다.

ggplot(data, aes(x = reorder(종류, `꽃받침 너비`), y = `꽃받침 너비`, label = round(`꽃받침 너비`, 2))) +
  geom_col(width = 0.6, fill = "#56B4E9") +
  geom_text(vjust = -0.5) +
  scale_y_continuous(expand = expansion(mult = c(0, 0.1))) +
  theme_bw()

오름차순 정렬한 막대그래프

x축 제목 수정

reorder를 사용하면 x축 제목이 ’reorder(종류, -\꽃받침 너비\\)’로 표시됩니다. scale_x_discrete를 사용하여 제목을 수정할 수 있습니다.

ggplot(data, aes(x = reorder(종류, -`꽃받침 너비`), y = `꽃받침 너비`, label = round(`꽃받침 너비`, 2))) +
  geom_col(width = 0.6, fill = "#56B4E9") +
  geom_text(vjust = -0.5) +
  scale_x_discrete(name = "붓꽃 종류") +
  scale_y_continuous(expand = expansion(mult = c(0, 0.1))) +
  theme_bw()

내림차순 정렬한 막대그래프의 x축 제목 수정

reorder를 활용하면 막대그래프를 데이터 값에 따라 쉽게 정렬할 수 있습니다. 이를 통해 시각화를 더욱 직관적으로 만들 수 있습니다. 각 사례를 참고하여 데이터에 맞는 정렬 방식을 적용해 보세요!