κ³ κΈ μ°¨νΈ μ ν λ° μ¬μ©λ²
- μ΄λ²μλ κΈ°λ³Έμ μΈ μ°¨νΈκ° μλ, λ μμΈν λ°μ΄ν°μ κ°μ μκ΄κ΄κ³, λΉλλ±μ νμ λͺ©μ μ μν μ°¨νΈλ€μ λ°νμ¬ μμλ³΄κ² μ΅λλ€.
ννΈλ§΅ (Heatmap)
- ννΈλ§΅μ νλ ¬ νμμ λ°μ΄ν°λ₯Ό μμμΌλ‘ μκ°ννμ¬ λ°μ΄ν°μ ν¬κΈ°λ λΉλ λ±μ νμ νκΈ° μν΄ μ¬μ©λλ λꡬμ λλ€.
- μμμ΄ μ§μ΄μ§μλ‘ λ°μ΄ν° κ°μ΄ ν¬κ±°λ λΉλκ° λμμ λνλ λλ€.
- μμ
- μκ΄ νλ ¬: λ³μλ€ κ°μ μκ΄ κ΄κ³ μκ°ν
- μΉμ¬μ΄νΈ ν΄λ¦: μΉνμ΄μ§μ μ¬μ©μ ν΄λ¦ λΉλλ₯Ό μκ°ν
ννΈλ§΅ μμ (Heatmap Example)
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
# μν λ°μ΄ν° μμ±
data = np.random.rand(10, 12)
# ννΈλ§΅ μμ±
plt.figure(figsize=(10, 8))
sns.heatmap(data, annot=True, cmap='coolwarm')
plt.title('Sample Heatmap')
plt.show()
νΈλ¦¬λ§΅ (Treemap)
- νΈλ¦¬λ§΅μ κ³μΈ΅μ λ°μ΄ν°λ₯Ό μ§μ¬κ°νμΌλ‘ μκ°ννμ¬ λ°μ΄ν°μ ν¬κΈ°μ λΉμ¨μ λνλ λλ€.
- κ° μ§μ¬κ°νμ ν¬κΈ°λ ν΄λΉ λ°μ΄ν°μ ν¬κΈ°λ₯Ό λνλ΄λ©° κ³μΈ΅ ꡬ쑰 λ΄μ λΉμ¨μ λΉκ΅νλ λ° νμν©λλ€.
- μμ: νμΌ μμ€ν : λμ€ν¬ μ¬μ©λμ μκ°ννμ¬ ν΄λμ νμΌμ ν¬κΈ°λ₯Ό λΉκ΅
νΈλ¦¬λ§΅ μμ (Treemap Example)
import plotly.express as px
import numpy as np
df = px.data.gapminder().query("year == 2007")
fig = px.treemap(df, path=[px.Constant("world"), 'continent', 'country'], values='pop',
color='lifeExp', hover_data=['iso_alpha'],
color_continuous_scale='RdBu',
color_continuous_midpoint=np.average(df['lifeExp'], weights=df['pop']))
fig.update_layout(margin = dict(t=50, l=25, r=25, b=25))
fig.show()
λ²λΈμ°¨νΈ (Bubble Chart)
- λ²λΈ μ°¨νΈλ μ°μ λμ νμ₯λ ννλ‘, λ°μ΄ν° ν¬μΈνΈμ ν¬κΈ°λ₯Ό μΆκ° λ³μλ‘ μκ°νν©λλ€.
- κ° λ²λΈμ μμΉλ λ λ³μμ κ°μ λνλ΄κ³ , ν¬κΈ°λ μΈ λ²μ§Έ λ³μλ₯Ό λνλ λλ€.
- μμ:
- GDPμ κΈ°λ μλͺ : κ° κ΅κ°μ GDPμ κΈ°λ μλͺ μ μκ°ννκ³ , λ²λΈ ν¬κΈ°λ‘ μΈκ΅¬ μλ₯Ό λνλ
- 맀μΆκ³Ό μ΄μ΅λ₯ : μ νλ³ λ§€μΆκ³Ό μ΄μ΅λ₯ μ μκ°ννκ³ , λ²λΈ ν¬κΈ°λ‘ μμ₯ μ μ μ¨μ λνλ
λ²λΈμ°¨νΈ μμ (Bubble Chart Example)
import matplotlib.pyplot as plt
# μν λ°μ΄ν° μ μ
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 35]
sizes = [100, 200, 300, 400, 500]
# λ²λΈ μ°¨νΈ μμ±
plt.figure(figsize=(10, 6))
plt.scatter(x, y, s=sizes, alpha=0.5, c=sizes, cmap='viridis')
plt.title('Sample Bubble Chart')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
λ μ΄λ μ°¨νΈ (Radar Chart)
- λ μ΄λ μ°¨νΈλ μ¬λ¬ λ³μλ₯Ό μΆμΌλ‘ νμ¬ λ€κ°νμΌλ‘ μκ°ννλ λ°©λ²μ λλ€.
- κ° μΆμ νλμ λ³μλ₯Ό λνλ΄λ©°, μ€μμμ κ° μΆκΉμ§μ 거리λ λ³μμ κ°μ λνλ λλ€.
- μμ:
- μ μμ μ±κ³Ό νκ°: λ€μν μ±κ³Ό μ§νλ₯Ό μκ°ννμ¬ μ μμ κ°μ κ³Ό μ½μ νμ
- μ ν λΉκ΅: μ¬λ¬ μ νμ λ€μν νΉμ±μ μκ°ννμ¬ λΉκ΅
λ μ΄λ μ°¨νΈ μμ(Radar Chart )
import matplotlib.pyplot as plt
import numpy as np
# μν λ°μ΄ν° μ μ
labels = ['Shots', 'Speeds', 'Touches', 'Dribbles', 'Heading']
values = [4, 3, 2, 5, 4]
values += values[:1]
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
angles += angles[:1]
# λ μ΄λ μ°¨νΈ μμ±
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
ax.fill(angles, values, color='red', alpha=0.4)
ax.plot(angles, values, color='black', linewidth=2)
ax.set_yticklabels([])
ax.set_xticks(angles[:-1])
ax.set_xticklabels(labels)
plt.title('Football Player A')
plt.show()
μν€ λ€μ΄μ΄κ·Έλ¨ (Sankey Diagram)
- μν€ λ€μ΄μ΄κ·Έλ¨μ λ°μ΄ν°μ νλ¦κ³Ό λΉμ¨μ μκ°ννλ λ°©λ²μ λλ€.
- νλ¦μ λκ»κ° λ°μ΄ν°μ ν¬κΈ°λ₯Ό λνλ λλ€.
- μμ:
- μλμ§ μλΉ νλ¦: μλμ§μ μμ°λΆν° μλΉκΉμ§μ νλ¦ μκ°ν
- μ¬μ νλ¦: μκΈμ μ μ κ³Ό μ μΆ μκ°ν
μν€ λ€μ΄μ΄κ·Έλ¨ μμ (Sankey Diagram Example)
import plotly.graph_objects as go
# μν λ°μ΄ν° μ μ
fig = go.Figure(go.Sankey(
node=dict(
pad=15,
thickness=20,
line=dict(color="black", width=0.5),
label=["A", "B", "C", "D", "E", "F"],
color=["blue", "blue", "blue", "blue", "blue", "blue"]
),
link=dict(
source=[0, 1, 0, 2, 3, 3],
target=[2, 3, 3, 4, 4, 5],
value=[8, 4, 2, 8, 4, 2]
)
))
fig.update_layout(title_text="Sample Sankey Diagram", font_size=10)
fig.show()
λ°μ΄ν°μ ννμ λ°λ₯Έ μκ°ν
μ’ μ’ μ°λ¦¬λ λ°μ΄ν°μ νν, κ΄κ³μ λ°λΌμ λ€λ₯Έ λ°μ΄ν° μκ°ν λ°©λ²μ μ¬μ©ν΄μΌ νλ κ²½μ°κ° μμ΅λλ€. νλ² μμλ³΄κ² μ΅λλ€.
λ€λ³λ λ°μ΄ν° μκ°ν
λ€λ³λ λ°μ΄ν° μκ°νλ μ¬λ¬ λ³μ κ°μ κ΄κ³μ ν¨ν΄μ νμ νλ μκ°ν λ°©λ²μ λλ€.
μ΄λ₯Ό ν΅ν΄ λ°μ΄ν° μΈνΈλ₯Ό μ΄ν΄νκ³ ν΄μνλ λ° μ΄μ μ΄ μμΌλ©°, λ€μν λ³μλ€μ μνΈμμ©μ μκ°μ μΌλ‘ λΆμν μ μμ΅λλ€.
νμ§λ§ λ무 λ§μ λ³μλ₯Ό ν κ·Έλνμ νμνλ©΄ 볡μ‘ν΄μ Έμ ν΄μμ΄ μ΄λ €μΈ μ μμ΅λλ€.
λνμ μΈ λ€λ³λ λ°μ΄ν° μκ°ν λꡬλ‘λ μ°μ λ, ννμ’ν, ννΈλ§΅, 체λ₯΄λ Έν νμ΄μ€κ° μμ΅λλ€.
- μ°μ λ (Scatter Plot): λ λ³μ κ°μ κ΄κ³λ₯Ό μκ°ννμ¬ μκ΄κ΄κ³λ₯Ό νμ ν μ μμ΅λλ€.
- ννμ’ν (Parallel Coordinates): μ¬λ¬ λ³μλ₯Ό ννν μΆμΌλ‘ λνλ΄μ΄ κ° λ³μμ κ°μ μ μΌλ‘ μ°κ²°ν©λλ€.
- ννΈλ§΅ (Heatmap): νλ ¬ νμμ λ°μ΄ν°λ₯Ό μμμΌλ‘ μκ°ννμ¬ λ°μ΄ν°μ ν¬κΈ°λ λΉλ λ±μ νμ ν©λλ€.
- 체λ₯΄λ Έν νμ΄μ€ (Chernoff Faces): μ¬λ¬ λ³μλ₯Ό μΌκ΅΄ λͺ¨μμΌλ‘ νννμ¬ λ°μ΄ν°μ μ°¨μ΄λ₯Ό μ§κ΄μ μΌλ‘ νμ ν μ μμ΅λλ€.
μκ³μ΄ λ°μ΄ν° μκ°ν
μκ³μ΄ λ°μ΄ν° μκ°νλ μκ°μ λ°λ₯Έ λ³νλ₯Ό λΆμνμ¬ μΆμΈ, κ³μ μ±, μ£ΌκΈ°μ±μ νμ νλ λ°©λ²μ λλ€.
μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ μκ°μ λ³λμ μκ°μ μΌλ‘ λΆμν μ μμ΅λλ€.
μκ³μ΄ λ°μ΄ν° μκ°ν λꡬλ‘λ μ κ·Έλν, ννΈλ§΅, μΊλ¦°λ μ°¨νΈκ° μμ΅λλ€.
- μ κ·Έλν (Line Chart): μκ°μ λ°λ₯Έ λ°μ΄ν° λ³νλ₯Ό μκ°ννλ©°, λ°μ΄ν° ν¬μΈνΈκ° μ μΌλ‘ μ°κ²°λμ΄ μΆμΈλ₯Ό λνλ λλ€.
- ννΈλ§΅ (Heatmap): νΉμ μκ°λμ λ°μ΄ν°λ₯Ό μμμΌλ‘ μκ°ννμ¬ ν¨ν΄κ³Ό λΆν¬λ₯Ό νμ ν μ μμ΅λλ€.
- μΊλ¦°λ μ°¨νΈ (Calendar Chart): λ μ§λ³ λ°μ΄ν°λ₯Ό μμμΌλ‘ λνλ΄μ΄ νΉμ κΈ°κ°μ λ°μ΄ν°λ₯Ό λΆμν©λλ€.
μ§λ¦¬ λ°μ΄ν° μκ°ν
μ§λ¦¬ λ°μ΄ν° μκ°νλ 곡κ°μ μΈ ν¨ν΄κ³Ό κ΄κ³λ₯Ό νμ νκ³ , νΉμ μμΉμ λ°μ΄ν°λ₯Ό λΆμνλ λ°©λ²μ λλ€.
μ΄λ₯Ό ν΅ν΄ 곡κ°μ λΆν¬μ μμΉ κΈ°λ°μ μΈμ¬μ΄νΈλ₯Ό μ»μ μ μμ΅λλ€. λνμ μΈ μ§λ¦¬ λ°μ΄ν° μκ°ν λꡬλ‘λ μ§λκ° μμ΅λλ€.
- μ§λ (Map): λ°μ΄ν°λ₯Ό μ§λ μμ μκ°ννμ¬ κ³΅κ°μ ν¨ν΄κ³Ό κ΄κ³λ₯Ό νμ ν©λλ€. μλ₯Ό λ€μ΄, νΉμ μ§μμ μΈκ΅¬ λΆν¬, κΈ°ν λ³ν, ν맀 μ§μ λ±μ μκ°νν μ μμ΅λλ€.
Interactive Visualization (μΈν°λ ν°λΈ μκ°ν)
μΈν°λν°λΈ μκ°νλ μ¬μ©μμ μνΈμμ©ν μ μλ λ°μ΄ν° μκ°ν λ°©λ²μ λλ€.
μ¬μ©μκ° μ§μ κ·Έλνλ μ°¨νΈλ₯Ό ν΄λ¦νκ±°λ, νλ μΆμνκ±°λ, λ°μ΄ν°λ₯Ό νν°λ§ν μ μμΌλ©°,
μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό λ κΉμ΄ νμνκ³ λ€μν κ΄μ μμ λΆμν μ μμ΅λλ€.
μ₯μ
- μ΄ν΄ μ¦μ§: λ°μ΄ν°λ₯Ό λ€μν λ°©μμΌλ‘ νμν μ μμ΄, 볡μ‘ν λ°μ΄ν°λ₯Ό λ μ½κ² μ΄ν΄ν μ μμ΅λλ€.
- μ¬μ©μ μ°Έμ¬: μνΈμμ© μμλ μ¬μ©μμ μ°Έμ¬λ₯Ό μ λν©λλ€.
- ν¨μ¨μ νμ: λ°μ΄ν° νν°λ§, νλ, μΆμ, μΈλΆ μ 보 νμΈμ΄ κ°λ₯ν΄ ν¨μ¨μ μΈ λ°μ΄ν° νμμ΄ κ°λ₯ν©λλ€.
μ£Όμμ
- κ³Όλν μνΈμμ©: λ무 λ§μ μνΈμμ© μμλ μ¬μ©μλ₯Ό νΌλμ€λ½κ² ν μ μμ΅λλ€.
- λ°μ΄ν° μ νμ±: μ€μκ° λ°μ΄ν° λΆμ μ λ°μ΄ν°μ μ νμ±μ μ μ§νλ κ²μ΄ νμμ μ λλ€.
- μ±λ₯ μ΅μ ν: λλμ λ°μ΄ν°λ₯Ό μκ°νν λλ μ±λ₯μ κ³ λ €ν΄μΌ ν©λλ€.
μΈν°λν°λΈ μμ
μ¬λΌμ΄μ (Slicer): λ°μ΄ν°μ νΉμ λ²μλ₯Ό μ νν μ μλ μ¬λΌμ΄λ λ° ννμ 컨νΈλ‘€λ¬.
- μμ: μκ° λ²μλ₯Ό μ ννμ¬ ν΄λΉ κΈ°κ°μ λ°μ΄ν°λ₯Ό μκ°ν.
λλ‘λ€μ΄ λ©λ΄ (Dropdown Menu): μ¬λ¬ μ΅μ μ€ νλλ₯Ό μ νν μ μλ λ©λ΄.
- μμ: νΉμ μΉ΄ν κ³ λ¦¬λ μ§μμ μ ννμ¬ ν΄λΉ λ°μ΄ν°λ₯Ό μκ°ν.
λ²νΌ (Buttons): νΉμ λμμ μ€νν μ μλ λ²νΌ.
- μμ: νΉμ νν°λ₯Ό μ μ©νκ±°λ, μλ μνλ‘ λ¦¬μ .
μ°κ²°λ μκ°ν (Linked Visualizations): νλμ μκ°νμμ μ νν λ°μ΄ν°κ° λ€λ₯Έ μκ°νμ λ°μ.
- μμ: μ§λμμ νΉμ μ§μμ ν΄λ¦νλ©΄ ν΄λΉ μ§μμ μμΈ λ°μ΄ν°κ° νμ λνλ¨.
μΈν°λ ν°λΈ μκ°ν μμ
import plotly.express as px
import pandas as pd
# μν λ°μ΄ν° μμ±
data = {
'Month': ['January', 'February', 'March', 'April', 'May', 'June'],
'Sales': [150, 200, 180, 220, 250, 230]
}
df = pd.DataFrame(data)
# μΈν°λν°λΈ μ κ·Έλν μμ±
fig = px.line(df, x='Month', y='Sales', title='Monthly Sales')
fig.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 |