일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코틀린
- 인프라
- Java
- 뉴턴역학
- GPT-4's answer
- kotlin
- android
- 자바
- write by chatGPT
- Spring boot
- 리눅스
- 웹 크롤링
- 고전역학
- 유닉스
- 자바네트워크
- Database
- 역학
- write by GPT-4
- 파이썬
- python
- flet
- chatGPT's answer
- NIO
- 소프트웨어공학
- 자바암호
- GIT
- oracle
- JVM
- lombok
- 시스템
- Today
- Total
Akashic Records
9.3 데이터 시각화(Matplotlib, Seaborn 등) 본문
데이터 시각화는 데이터를 이해하고 분석하는 데 중요한 역할을 합니다. 파이썬에서는 Matplotlib, Seaborn 등의 라이브러리를 사용하여 다양한 차트와 그래프를 그릴 수 있습니다.
Matplotlib
Matplotlib는 파이썬에서 가장 널리 사용되는 데이터 시각화 라이브러리입니다. 기본적인 선 그래프, 막대 그래프, 히스토그램 등 다양한 차트를 그릴 수 있습니다.
설치:
pip install matplotlib
예시 코드:
import matplotlib.pyplot as plt
import numpy as np
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 선 그래프 그리기
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Sine Wave')
plt.show()
# 막대 그래프 그리기
categories = ['A', 'B', 'C', 'D', 'E']
values = [3, 7, 2, 5, 8]
plt.bar(categories, values)
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Bar Chart')
plt.show()
# 히스토그램 그리기
data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()
# 산점도 그리기
x = np.random.randn(100)
y = np.random.randn(100)
plt.scatter(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Scatter Plot')
plt.show()
# 여러 그래프 함께 그리기
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='Sine Wave')
plt.plot(x, y2, label='Cosine Wave')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Sine and Cosine Waves')
plt.legend()
plt.show()
Seaborn
Seaborn은 Matplotlib을 기반으로 한 데이터 시각화 라이브러리로, 통계 기반의 그래프를 그리기에 적합합니다. 또한, 기본적인 스타일링이 적용되어 있어 보다 세련된 그래프를 그릴 수 있습니다.
설치:
pip install seaborn
예시 코드:
import seaborn as sns
import numpy as np
import pandas as pd
# 데이터 생성
data = {
'Category': ['A', 'B', 'C', 'D', 'E']*20,
'Value': np.random.randn(100)
}
df = pd.DataFrame(data)
# 박스 플롯
sns.boxplot(x='Category', y='Value', data=df)
plt.show()
# 바이올린 플롯
sns.violinplot(x='Category', y='Value', data=df)
plt.show()
# 산점도 행렬
iris = sns.load_dataset('iris')
sns.pairplot(iris, hue='species')
plt.show()
# 히트맵
uniform_data = np.random.rand(10, 12)
sns.heatmap(uniform_data)
plt.show()
Matplotlib과 Seaborn은 파이썬에서 다양한 데이터 시각화를 수행할 수 있는 강력한 도구입니다. 이 외에도 많은 차트와 그래프를 그릴 수 있으며, 공식 문서와 튜토리얼을 참조하여 원하는 그래프를 그릴 수 있습니다.
Plotly
Plotly는 인터랙티브한 그래프를 생성할 수 있는 라이브러리로, 웹 기반의 시각화를 제공합니다. 이를 통해 사용자가 그래프를 확대, 축소하거나 마우스 오버 등의 인터랙션을 사용할 수 있습니다.
설치:
pip install plotly
예시 코드:
import plotly.express as px
# 선 그래프
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig = px.line(x=x, y=y, labels={'x': 'X-axis', 'y': 'Y-axis'}, title='Sine Wave')
fig.show()
# 막대 그래프
x = ['A', 'B', 'C', 'D', 'E']
y = [3, 7, 2, 5, 8]
fig = px.bar(x=x, y=y, labels={'x': 'Category', 'y': 'Value'}, title='Bar Chart')
fig.show()
# 산점도 행렬
iris = px.data.iris()
fig = px.scatter_matrix(iris, dimensions=['sepal_width', 'sepal_length', 'petal_width', 'petal_length'], color='species')
fig.show()
Bokeh
Bokeh는 파이썬에서 대화형 웹 시각화를 구축하는데 사용되는 라이브러리입니다. 높은 수준의 인터랙티브 그래프를 생성할 수 있으며, 웹 기반의 도구를 제공하여 데이터를 탐색하고 이해하는데 도움을 줍니다.
설치:
pip install bokeh
예시 코드:
from bokeh.plotting import figure, show, output_notebook
from bokeh.sampledata.iris import flowers
# Jupyter 노트북에 결과를 표시
output_notebook()
# 산점도
p = figure(title='Iris Morphology', x_axis_label='Petal Length', y_axis_label='Petal Width')
colors = {'setosa': 'red', 'versicolor': 'green', 'virginica': 'blue'}
for species, color in colors.items():
data = flowers[flowers['species'] == species]
p.scatter(data['petal_length'], data['petal_width'], color=color, legend_label=species)
p.legend.location = 'top_left'
show(p)
Matplotlib, Seaborn, Plotly, Bokeh 등 다양한 시각화 라이브러리를 사용하여 데이터를 표현하고 분석할 수 있습니다. 각 라이브러리마다 특징과 사용법이 다르므로, 프로젝트의 요구에 맞게 선택하여 사용하는 것이 중요합니다.
'Python for Beginners' 카테고리의 다른 글
10.2 NoSQL 데이터베이스 (0) | 2023.03.31 |
---|---|
10.1 SQL 데이터베이스 (0) | 2023.03.31 |
9.2 판다스(Pandas) (0) | 2023.03.27 |
9.1 넘파이(Numpy) (0) | 2023.03.27 |
8.3 웹 프레임워크 (1) | 2023.03.24 |