๋ฐ์ํ
๋ง๋ ๊ทธ๋ํ (Bar Chart)
- ๋ง๋ ๊ทธ๋ํ๋ '๋ฒ์ฃผํ ๋ฐ์ดํฐ์ ๋น๋๋ ๊ฐ'์ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ์ ์ธ ์๊ฐํ ๋๊ตฌ์ ๋๋ค.
- ๋ฐ์ดํฐ ๊ฐ์ ์ํ ๋๋ ์์ง ๋ง๋๋ก ํํ๋๋ฉฐ, ๊ฐ ๋ง๋์ ๊ธธ์ด๋ ํด๋น ๋ฒ์ฃผ์ ํฌ๊ธฐ๋ ๋น๋๋ฅผ ๋ํ๋ ๋๋ค.
- ์์
- ๋น์ฆ๋์ค: ์๋ณ ๋งค์ถ ๋น๊ต๋ฅผ ํตํด ์ฑ๊ณผ ๋ถ์
- ๊ต์ก: ํ๋ ๋ณ ์ฑ์ ๋น๊ต
- ์๋ฃ: ๋ณ์๋ณ ํ์ ์ ๋น๊ต
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import numpy as np
# ๋ฐ์ดํฐ ์ ์
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
sales = [150, 200, 180, 220, 250, 230]
# ๋ง๋๊ทธ๋ํ ์์ฑ
plt.figure(figsize=(10, 6)) # ๊ทธ๋ํ ํฌ๊ธฐ ์ค์
plt.bar(months, sales, color='skyblue', label='Sales') # ๋ง๋๊ทธ๋ํ ์์ฑ
plt.title('Monthly Sales') # ์ ๋ชฉ ์ถ๊ฐ
plt.xlabel('Month') # x์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.ylabel('Sales') # y์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.legend() # ๋ฒ๋ก ์ถ๊ฐ
plt.grid(True) # ๊ทธ๋ฆฌ๋ ์ถ๊ฐ
plt.show() # ๊ทธ๋ํ ์ถ๋ ฅ
ํ์คํ ๊ทธ๋จ (Histogram)
- ํ์คํ ๊ทธ๋จ์ '์ฐ์ํ ๋ฐ์ดํฐ์ ๋ถํฌ'๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ฒ์๋ฅผ ์ฌ๋ฌ ๊ตฌ๊ฐ(bin)์ผ๋ก ๋๋๊ณ ๊ฐ ๊ตฌ๊ฐ์ ๋ฐ์ดํฐ ๋น๋๋ฅผ ๋ง๋๋ก ํ์ํฉ๋๋ค.
- ์์:
- ๋น์ฆ๋์ค: ์ ํ ๊ฐ๊ฒฉ๋๋ณ ํ๋งค๋ ๋ถํฌ
- ๊ต์ก: ์ํ ์ ์ ๋ถํฌ
- ๊ฑด๊ฐ: ๋์ด๋๋ณ ํ์ ์ ๋ถํฌ
# ๋ฐ์ดํฐ ์์ฑ
np.random.seed(10)
data = np.random.randn(1000)
# ํ์คํ ๊ทธ๋จ ์์ฑ
plt.figure(figsize=(10, 6)) # ๊ทธ๋ํ ํฌ๊ธฐ ์ค์
plt.hist(data, bins=30, color='skyblue', edgecolor='black')
plt.title('Histogram of Random Data') # ์ ๋ชฉ ์ถ๊ฐ
plt.xlabel('Value') # x์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.ylabel('Frequency') # y์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.grid(True) # ๊ทธ๋ฆฌ๋ ์ถ๊ฐ
plt.show()
์ ๊ทธ๋ํ (Line Chart)
- ์ ๊ทธ๋ํ๋ ์๊ฐ์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ๋ณํ๋ฅผ ์๊ฐํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ถ์ธ๋ฅผ ๋ํ๋ ๋๋ค.
- ์์:
- ๋น์ฆ๋์ค: ์ฃผ๊ฐ ๋งค์ถ ํธ๋ ๋ ๋ถ์
- ๊ต์ก: ํ๊ธฐ๋ณ ํ์ ์ถ์๋ฅ ๋ณํ
- ๊ฑด๊ฐ: ์ผ๋ณ ํ์ ์์น ๋ณํ
# ๋ฐ์ดํฐ ์ ์
data = {'Year': [2018, 2019, 2020, 2021], 'Visitors': [12000, 18000, 2300, 30000]}
df = pd.DataFrame(data)
# ์ ๊ทธ๋ํ ์์ฑ
plt.figure(figsize=(10, 6)) # ๊ทธ๋ํ ํฌ๊ธฐ ์ค์
sns.lineplot(x='Year', y='Visitors', data=df, marker='o', label='Visitors')
plt.title('Annual Website Visitors') # ์ ๋ชฉ ์ถ๊ฐ
plt.xlabel('Year') # x์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.ylabel('Number of Visitors') # y์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.legend() # ๋ฒ๋ก ์ถ๊ฐ
plt.grid(True) # ๊ทธ๋ฆฌ๋ ์ถ๊ฐ
plt.show()
์ ๊ทธ๋ํ ๋ณตํฉ์ฐจํธ ์์
# ๋ณตํฉ ์ฐจํธ ์์ฑ
plt.figure(figsize=(10, 6)) # ๊ทธ๋ํ ํฌ๊ธฐ ์ค์
sns.lineplot(x='Year', y='Product A', data=df, marker='o', label='Product A')
sns.lineplot(x='Year', y='Product B', data=df, marker='o', label='Product B')
sns.lineplot(x='Year', y='Product C', data=df, marker='o', label='Product C')
plt.title('Annual Product Sales') # ์ ๋ชฉ ์ถ๊ฐ
plt.xlabel('Year') # x์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.ylabel('Sales') # y์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.legend() # ๋ฒ๋ก ์ถ๊ฐ
plt.grid(True) # ๊ทธ๋ฆฌ๋ ์ถ๊ฐ
plt.show()
ํ์ด ์ฐจํธ (Pie Chart)
- ํ์ด ์ฐจํธ๋ ์ ์ฒด์์ ๊ฐ ๋ถ๋ถ์ ๋น์จ์ ์๊ฐํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ํ ์ฐจํธ๋ก, ๊ฐ ์กฐ๊ฐ์ ํฌ๊ธฐ๋ ์ ์ฒด์์ ํด๋น ํญ๋ชฉ์ ๋น์จ์ ๋ํ๋ ๋๋ค.
- ์์:
- ๋น์ฆ๋์ค: ์์ฐ ๋ถ๋ฐฐ, ์์ฅ ์ ์ ์จ ๋น๊ต
- ๊ต์ก: ํ๊ณผ๋ณ ํ์ ๋น์จ
- ์๋ฃ: ๋ณ์ ๋ด ๊ฐ ๋ถ์๋ณ ํ์ ๋น์จ
# ๋ฐ์ดํฐ ์ ์
labels = ['Product A', 'Product B', 'Product C', 'Product D']
sizes = [400, 300, 500, 100]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0, 0.1, 0, 0) # ์ฒซ ๋ฒ์งธ ์กฐ๊ฐ์ ์ฝ๊ฐ ๋จ์ด๋จ๋ฆฌ๊ธฐ
# ๋ณต์กํ ๋์์ธ์ ํ์ด์ฐจํธ
plt.figure(figsize=(8, 8)) # ๊ทธ๋ํ ํฌ๊ธฐ ์ค์
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.title('Sales Distribution - Complex Design')
plt.axis('equal') # ํ์ด์ฐจํธ๋ฅผ ์ํ์ผ๋ก ์ ์ง
plt.show()
์ฐ์ ๋ (Scatter Plot)
- ์ฐ์ ๋๋ ๋ ๋ณ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์๊ฐํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๊ฐ ๋ฐ์ดํฐ ํฌ์ธํธ๋ ๋ ๋ณ์ ๊ฐ์ ๊ต์ฐจ์ ์ ์์นํฉ๋๋ค.
- ์์:
- ๋น์ฆ๋์ค: ๊ด๊ณ ๋น์ ๋งค์ถ ๊ฐ์ ์๊ด๊ด๊ณ ๋ถ์
- ๊ต์ก: ๊ณต๋ถ ์๊ฐ๊ณผ ์ฑ์ ๊ฐ์ ๊ด๊ณ
- ๊ฑด๊ฐ: ์ฒด์ค๊ณผ ํ์ ๊ฐ์ ๊ด๊ณ
# ๋ฐ์ดํฐ ์์ฑ
np.random.seed(10)
data = {
'x': np.random.randn(100),
'y': np.random.randn(100)
}
df = pd.DataFrame(data)
# ์ฐ์ ๋ ์์ฑ
plt.figure(figsize=(10, 6)) # ๊ทธ๋ํ ํฌ๊ธฐ ์ค์
sns.scatterplot(x='x', y='y', data=df)
plt.title('Scatter Plot of Random Data') # ์ ๋ชฉ ์ถ๊ฐ
plt.xlabel('X') # x์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.ylabel('Y') # y์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.grid(True) # ๊ทธ๋ฆฌ๋ ์ถ๊ฐ
plt.show()
๋ฐ์คํ๋กฏ (Box Plot)
- ๋ฐ์คํ๋กฏ์ ๋ฐ์ดํฐ์ ๋ถํฌ์ ์ด์์น๋ฅผ ์๊ฐํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ค์๊ฐ, ์ฌ๋ถ์์, ์ต์๊ฐ, ์ต๋๊ฐ ๋ฐ ์ด์์น๋ฅผ ํ์ํฉ๋๋ค.
- ์์:
- ๋น์ฆ๋์ค: ์ง์ ์ฐ๋ด ๋ถํฌ ๋ถ์
- ๊ต์ก: ์ํ ์ ์ ๋ถํฌ์ ์ด์์น ๋ถ์
- ๊ฑด๊ฐ: ์ฒด์ง๋์ง์(BMI) ๋ถํฌ
# ๋ฐ์ดํฐ ์์ฑ
np.random.seed(10)
data = {
'Category': np.random.choice(['A', 'B', 'C'], 100),
'Value': np.random.randn(100)
}
df = pd.DataFrame(data)
# ๋ฐ์คํ๋กฏ ์์ฑ
plt.figure(figsize=(10, 6)) # ๊ทธ๋ํ ํฌ๊ธฐ ์ค์
sns.boxplot(x='Category', y='Value', data=df)
plt.title('Box Plot of Random Data by Category') # ์ ๋ชฉ ์ถ๊ฐ
plt.xlabel('Category') # x์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.ylabel('Value') # y์ถ ๋ ์ด๋ธ ์ถ๊ฐ
plt.grid(True) # ๊ทธ๋ฆฌ๋ ์ถ๊ฐ
plt.show()
๋ฐ์ํ
'๐ Data Analysis' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Data Analysis] ์๊ฐํ์ ๋์์ธ ์์น & ์คํ ๋ฆฌํ ๋ง (0) | 2024.07.25 |
---|---|
[Data Analysis] ๊ณ ๊ธ ์ฐจํธ ์ ํ & ์ธํฐ๋ ํฐ๋ธ ์๊ฐํ (0) | 2024.07.25 |
[Data Analysis] Data Visualization (๋ฐ์ดํฐ ์๊ฐํ) & ์๊ฐ์ ์ธ์ง (0) | 2024.07.25 |
[Data Analysis] ์๊ณ์ด ๋ฐ์ดํฐ & ๋ค๋ณ๋ ๋ถ์ (0) | 2024.07.21 |
[Data Analysis] ๊ฐ์ค ๊ฒ์ ๊ณผ A/B Test, ์๋๋ฆฌ์ค (0) | 2024.07.20 |