728x90
반응형

728x90

안녕하세요! 오늘은 파이썬으로 하는 시각화 활용 Box plot에 대해 포스팅 하려고 합니다.

  • Box plot 이란?

데이터의 분포, 중앙값, 사분위수, 이상치를 시각적으로 표현하는 그래프 입니다.

Box plot은 분포와 대칭성을 시각적으로 파악이 쉽고, 그룹 간 비교에 적합하여 시각화에서 자주 사용합니다.

Q1~Q3 범위를 상자로 표시해주고, 데이터의 중앙값은 선으로 표시해줍니다!

극단적인 값들은 점으로 표시하여, 얼만큼 이상치가 존재하는지 한 눈에 볼 수 있도록 해줍니다.

 

저는 보통은 그룹으로 그리는 경우가 많아서, seaborn을 많이 사용하지만 matplotlib으로도 Box plot을 그릴 수 있습니다.

matplotlib으로 Box plot 그리기

먼저 matplotlib를 사용해서 간단한 그래프를 그려보겠습니다.

우선은 Box plot을 그리기 위해 간단한 예제를 가지고 왔습니다!

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 예제용 데이터 생성
np.random.seed(42)
group_a = np.random.normal(loc=60, scale=10, size=100)
group_b = np.random.normal(loc=70, scale=15, size=100)

# 데이터프레임으로 변환
df = pd.DataFrame({
    "점수": np.concatenate([group_a, group_b]),
    "그룹": ["A"]*100 + ["B"]*100
})

 

이제 위의 데이터를 바탕으로 Box plot을 그려보겠습니다.

굉장히 깔끔한 Box plot이 그러진 것을 보실 수 있습니다!

plt.rcParams['font.family'] = 'HYPost-Medium'

# 데이터 나누기
grouped = [df[df["그룹"] == "A"]["점수"],
           df[df["그룹"] == "B"]["점수"]]

# Box Plot 그리기
plt.figure(figsize=(10, 7))
plt.boxplot(grouped, labels=["그룹 A", "그룹 B"])
plt.title("Matplotlib Box Plot")
plt.ylabel("점수")
plt.show()

 

한글을 사용했기 때문에 깨지지 않기 위해 한글 세팅을 했는데요!

한글 세팅을 하는 방법이 궁금하신 분들은 아래 링크를 참고해주세요:)

https://yhj9855.com/entry/%EC%8B%9C%EA%B0%81%ED%99%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%8B%9C%EA%B0%81%ED%99%94-%ED%99%9C%EC%9A%A9-%EB%B2%94%EB%A1%80-%EC%B6%95-%EC%A0%9C%EB%AA%A9-with-%ED%95%9C%EA%B8%80-%EC%A7%80%EC%A0%95

 

[시각화] 파이썬 시각화 활용 - 범례, 축, 제목 (with 한글 지정)

ㄱ안녕하세요! 오늘은 파이썬으로 하는 시각화 활용 공통 사항에 대해 포스팅 하려고 합니다. 어떤 그래프를 그려도, x축/y축/범례/제목 등은 공통적으로 지정해야 하는데요.해당 부분이 간단해

yhj9855.com

seaborn을 사용하여 단일 그래프 그리기

이번에는 동일한 데이터를 사용해서 seaborn으로 그래프를 그려보도록 하겠습니다!

import seaborn as sns

plt.figure(figsize=(10, 7))
sns.boxplot(x="그룹", y="점수", data=df)
plt.title("Seaborn Box Plot")
plt.ylabel("점수")
plt.show()

비슷하면서 다르다는 것을 쉽게 보실 수 있습니다!

그래프 커스텀 하기

사실 그래프를 그리는 것은 정말 간단합니다!

하지만 그래프를 단순히 그리는 것과 이를 커스텀해서 사용하는 것은 정말 큰 차이가 있습니다.
지금부터는 다양하게 그래프를 커스텀하는 방법에 대해 소개해드리겠습니다!

  • 색상 사용하기

제일 중요한 커스텀은 바로 그래프에 색상을 입히는 것입니다!

파이썬에서 사용할 수 있는 색상은 아래 포스팅을 참고해주세요!

https://yhj9855.com/entry/%EC%8B%9C%EA%B0%81%ED%99%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%8B%9C%EA%B0%81%ED%99%94-%EC%83%89%EC%83%81-%EC%A0%95%EB%A6%AC-Matplotlib-Seaborn

 

[시각화] 파이썬 시각화 색상 정리 (Matplotlib, Seaborn)

안녕하세요! 오늘은 데이터 분석에서 정말 중요한 그래프 색상을 정리하는 포스팅을 진행하도록 하겠습니다. 데이터 분석에서 시각화는 정말 중요한데요.똑같이 데이터 분석을 진행했다고 해

yhj9855.com

 

plt.figure(figsize=(10, 7))
sns.boxplot(x="그룹", y="점수", data=df, palette=['deepskyblue', 'deeppink'])
plt.title("Seaborn Box Plot")
plt.ylabel("점수")
plt.show()

  • 그래프 그룹으로 나누기

다음은 seaborn에서 제공해주는 타이타닉 예제를 바탕으로 남성과 여성으로 그룹을 나누어 그래프를 그려보겠습니다.

titanic = sns.load_dataset("titanic")

# 그래프 크기 설정
plt.figure(figsize=(15, 10))

# Box Plot 그리기
sns.boxplot(x="class", y="fare", hue="sex", data=titanic, palette=["lightblue", "lightcoral"])

# 제목 및 레이블 설정
plt.title("타이타닉 - 성별에 따른 선실 등급별 요금 비교", fontsize=14)
plt.xlabel("선실 등급")
plt.ylabel("요금 (달러)")
plt.legend(title="성별")
plt.show()

위의 그래프 같은 경우 500 근처에 있는 이상치 때문에 Third의 그래프가 잘 보이지 않는데요!

이럴 경우 y축의 가장 높은 값을 지정하여 이상치를 보여주지 않을 수도 있습니다.

titanic = sns.load_dataset("titanic")

# 그래프 크기 설정
plt.figure(figsize=(15, 10))

# Box Plot 그리기
sns.boxplot(x="class", y="fare", hue="sex", data=titanic, palette=["lightblue", "lightcoral"])

# 제목 및 레이블 설정
plt.title("타이타닉 - 성별에 따른 선실 등급별 요금 비교", fontsize=14)
plt.xlabel("선실 등급")
plt.ylabel("요금 (달러)")
plt.legend(title="성별")
plt.ylim(top=300)
plt.show()

300으로 최대 값을 자르니 그래프가 훨씬 잘 보이는 걸 보실 수 있는데요.

이상치를 제거하는 것은 나름의 리스트가 있기 때문에 어떤 것을 중점으로 시각화 하냐에 따라 사용법이 다를 수 있습니다!

  • 그래프 축/제목/범례 설정

그래프 제목, x축, y축, 범례 등을 직접 지정할 수 있습니다!

축, 제목, 범례를 설정하는 방법 및 한글 설정하는 자세한 과정은 아래 포스팅을 참고해주세요.

https://yhj9855.com/entry/%EC%8B%9C%EA%B0%81%ED%99%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%8B%9C%EA%B0%81%ED%99%94-%ED%99%9C%EC%9A%A9-%EB%B2%94%EB%A1%80-%EC%B6%95-%EC%A0%9C%EB%AA%A9-with-%ED%95%9C%EA%B8%80-%EC%A7%80%EC%A0%95

 

[시각화] 파이썬 시각화 활용 - 범례, 축, 제목 (with 한글 지정)

ㄱ안녕하세요! 오늘은 파이썬으로 하는 시각화 활용 공통 사항에 대해 포스팅 하려고 합니다. 어떤 그래프를 그려도, x축/y축/범례/제목 등은 공통적으로 지정해야 하는데요.해당 부분이 간단해

yhj9855.com

 

여기까지 Box plot 활용을 정리해보았습니다!

단순히 그래프를 그리는 것 이상으로 활용을 잘 하시면 정말 좋은 시각화를 그리실 수 있습니다:)

그래프가 잘 숙련되시면 아래 같은 그래프를 그리실 수 있습니다.


코드에 궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

★읽어주셔서 감사합니다★

728x90
반응형

+ Recent posts