Akashic Records

9.3 데이터 시각화(Matplotlib, Seaborn 등) 본문

Python for Beginners

9.3 데이터 시각화(Matplotlib, Seaborn 등)

Andrew's Akashic Records 2023. 3. 27. 15:06
728x90

데이터 시각화는 데이터를 이해하고 분석하는 데 중요한 역할을 합니다. 파이썬에서는 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 등 다양한 시각화 라이브러리를 사용하여 데이터를 표현하고 분석할 수 있습니다. 각 라이브러리마다 특징과 사용법이 다르므로, 프로젝트의 요구에 맞게 선택하여 사용하는 것이 중요합니다. 

728x90

'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
Comments