R - 막대 그래프: 아름다운 시각화를 만드는 초보자 가이드

안녕하세요, 데이터 시각화에 도전하는 여러분! R과 막대 그래프의 세계로 흥미로운 여정을 안내해 드리게 되어 기쁩니다. 10년 이상 컴퓨터 과학을 가르쳐온 경험으로 말씀드리건다면, 시각적으로 매력적인 그래프를 만드는 것은 단순한 기술이 아니라 예술입니다. 오늘, 우리는 R으로 여러분을 모두 예술가로 만들어 보겠습니다!

R - Bar Charts

막대 그래프는 무엇인가요?

코드에 들어가기 전에 막대 그래프가 무엇인지 이해해 보겠습니다. 파티에서 친구들의 키를 비교하고 싶은 상황을 상상해 보세요. 벽에 서서히 서게 하지 말고, 각 사람의 키를 나타내는 직사각형을 그리면 됩니다. 막대 그래프는 바로 이와 같은 원리입니다. 카테고리 간의 비교를 나타내기 위해 직사각형 막대를 사용합니다.

이제 R 코드로 손을 더러 만들어 보겠습니다!

기본 막대 그래프

간단한 예제로 시작해 보겠습니다. 예를 들어, 각 맛의 아이스크림을 판매한 개수를 시각화하고 싶습니다.

# 아이스크림 맛 벡터 생성
flavors <- c("Vanilla", "Chocolate", "Strawberry", "Mint")

# 판매된 아이스크림 개수 벡터 생성
scoops <- c(50, 75, 30, 45)

# 막대 그래프 생성
barplot(scoops, names.arg = flavors)

이 코드를 실행하면 기본적인 막대 그래프를 볼 수 있습니다. 각 막대는 맛을 나타내며, 높이는 판매된 아이스크림의 개수를 나타냅니다. 간단하죠? 하지만 좀 지루할 수 있습니다. 이제 좀 더 예쁘게 만들어 보겠습니다!

막대 그래프 레이블, 제목 및 색상

이제 그래프를 더 정보가 풍부하고 시각적으로 매력적으로 만들어 보겠습니다.

# 더 매력적인 막대 그래프 생성
barplot(scoops,
names.arg = flavors,
col = c("ivory", "chocolate", "pink", "lightgreen"),
main = "Ice Cream Sales by Flavor",
xlab = "Flavors",
ylab = "Number of Scoops Sold",
border = "darkgray",
ylim = c(0, 100))

# 각 막대 위에 텍스트 레이블 추가
text(x = 1:length(scoops), y = scoops, labels = scoops, pos = 3, cex = 0.8)

이를 설명해 보겠습니다:

  • col: 각 막대에 맛에 맞는 색상을 부여합니다. 재미있죠?
  • main, xlab, ylab: 그래프에 제목과 축 레이블을 추가합니다.
  • border: 막대에 테두리를 추가합니다.
  • ylim: y축의 범위를 설정합니다.
  • text() 함수는 각 막대 위에 정확한 아이스크림 개수를 표시합니다.

이 코드를 실행하면, 고급스러운 막대 그래프를 만들 수 있습니다. 고든 램지라도 데이터 과학자라면 이 그래프를 인정했을 것입니다(물론 그렇게 될 가능성은 적겠지만).

그룹 막대 그래프

이제 한 단계 더 업그레이드해 보겠습니다. 다양한 달별 아이스크림 판매를 비교하고 싶다면, 그룹 막대 그래프가 필요합니다!

# 아이스크림 판매 행렬 생성
sales <- matrix(c(50, 75, 30, 45,
60, 80, 40, 50,
45, 70, 35, 40),
nrow = 3, byrow = TRUE)

# 열 이름(맛)과 행 이름(월) 설정
colnames(sales) <- c("Vanilla", "Chocolate", "Strawberry", "Mint")
rownames(sales) <- c("June", "July", "August")

# 그룹 막대 그래프 생성
barplot(sales,
beside = TRUE,
col = c("skyblue", "pink", "lightgreen"),
legend.text = rownames(sales),
args.legend = list(x = "topright", bty = "n"),
main = "Ice Cream Sales by Flavor and Month",
xlab = "Flavors",
ylab = "Number of Scoops Sold")

여기서 beside = TRUE는 막대를 옆에 배치하도록 지정합니다. legend.textargs.legend는 그래프에 범례를 추가합니다.

쌓인 막대 그래프

마지막으로, 쌓인 막대 그래프를 만들어 보겠습니다. 이는 총합과 구성을 모두 보여주기에 적합합니다.

# 쌓인 막대 그래프 생성
barplot(sales,
col = c("skyblue", "pink", "lightgreen"),
legend.text = rownames(sales),
args.legend = list(x = "topright", bty = "n"),
main = "Total Ice Cream Sales by Flavor",
xlab = "Flavors",
ylab = "Total Number of Scoops Sold")

여기서만 beside = TRUE를 제거했습니다. 이제 막대는 쌓여져 있으며, 총 판매량과 각 월의 기여도를 보여줍니다.

결론

이제 여러분은 R에서 기본, 그룹, 쌓인 막대 그래프를 만드는 방법을 배웠습니다. 이를 습득하는 열쇠는 연습입니다. 색상을 변경하거나 더 많은 데이터를 추가하거나 심지어 그래프를 애니메이션으로 만들어 보세요(네, R에서는 그것도 가능합니다!).

이제 사용한 주요 함수의 빠른 참조 표를 보여드리겠습니다:

함수 설명
barplot() 막대 그래프 생성
text() 그래프에 텍스트 추가
legend() 그래프에 범례 추가
matrix() 행렬 생성
c() 값들을 벡터나 목록으로 결합

기억해 두세요, 데이터 시각화는 데이터로 이야기를 전하는 것입니다. 그러므로 실험하고, 데이터가 아름다운 막대 그래프를 통해 말하게 하세요!

기쁜 코딩을 기원하며, 막대가 항상 완벽하게 정렬되기를 바랍니다!

Credits: Image by storyset