본문 바로가기
Python/Python 기초

[파이썬완전기초]데이터시각화 Metplotlib

by 찐남 2021. 7. 31.
본 포스팅은 2021 NIPA AI 온라인 무료 교육의 AI 실무 기본 과정을 기반으로 작성하였습니다.

 

1. Matplotlib 그래프

 

1.1. Line plot

 

그래프를 그리는 기본적인 문법은 아래와 같습니다.

 



 

 

fig, ax = plt.subplots()
x = np.arange(15)
y = x ** 2
ax.plot(
____x, y, 
____linestyle = ":",
____marker = "*",
____color = "#524FA1"
)

 

기본 linestyle의 선택은 아래와 같이 정의할 수 있습니다.

 

x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, linestyle = "-")  # solid
ax.plot(x, x+2, linestyle = "--") # dashed
ax.plot(x, x+4, linestyle = "-." # dashdot
ax.plot(x, x+6, linestyle = ":") # dotted

 

1.2. color

 

다음은 색상 선택입니다.

 

x = np.arange(15)
fig, ax = plt.subplots()
ax.plot(x, x, color = "r")
ax.plot(x, x + 2, color = "green")
ax.plot(x, x + 4, color = "0.8")
ax.plot(x, x + 6, color = "#524FA1")

 

1.3. marker

 

다음은 표식 삽입입니다.

 

x = np.arange(15)
fig, ax = plt.subplots()
ax.plot(x, x, marker = ".")
ax.plot(x, x + 2, marker = "o")
ax.plot(x, x + 4, marker = "v")
ax.plot(x, x + 6, marker = "s")
ax.plot(x, x + 8, marker = "*")

 

1.4. 축 경계 조정하기

 

x = np.linspace(0, 10, 1000)
fig, ax = plt.subplots()
ax.plot(x, np.sin(x))
ax.set_xlim = (-2, 12)
ax.set_ylim = (-1.5, 1.5)

 

1.5. 범례

 

x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, label = "y = x")
ax.plot(x, x ** 2, label = "y = x^2")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.legend(loc = 'upper right',
___________shadow = True, 
___________fancybox = True,
___________borderpad =2)


 

 



 

 

2. Bar & Histogram

 

2.1. Barplot

 

x = np.arange(10)
fig, ax = plt.subplots(figsize = (12,4))
ax.bar(x, x*2)

 

또 다른 형태의 bar chart 예시입니다.

 

x_ax = np.arange(3)
fig, ax = plt.subplots()

for i in x_ax : 
____ax.bar(x_ax, data[i]
_____________bottom = np.sum(data[:i], axis = 0)

ax.xticks(x_ax)
ax.set_ticklabels(["A", "B", "C"])

 

2.2. Histogram

 

이번에는 히스토그램을 그려 보도록 하겠습니다.

 

fig, ax = plt.subplots()
data = np.random.randn(1000)
ax.hist(data, bins = 50))

 

3. Matplotlib with Pandas

 

데이터를 다루는 pandas를 활용하여 그래프를 그려 보도록 하겠습니다.

 

df = pd.read_csv("./president_heights.csv")  # president_heights.csv 파일을 df로 저장
fig, ax = plt.subplots()
ax.plot(df["order"], df["height(cm)"], label = "height")
ax.set_xlabel("order")
ax.set_xlabel("height(cm)")

 

다른 예를 보도록 하겠습니다.

 

df = pd.read_csv("./data/pokemon.csv")
fire = df[(df['Type 1'] == 'Fire') | (df['Type 2'] == 'Fire')]
water = df[(df['Type 1'] == 'Water') | (df['Type 2'] == 'Water')]

fig, ax = plt.subplots()
ax.scatter(fire['Attack'], fire['Defense'], label = 'fire', color = 'R', marker = '*', s = 50)
ax.scatter(water['Attack'], fire['Defense'], label = 'water', color = 'B', s = 25)
ax.set_xlabel("Attack")
ax.set_ylabel("Defense")
ax.set_legend(loc = "upper right")

 

이상 pandas과 matplotlib를 활용하여 그래프를 그려 보았습니다.

 

 

 

반응형

댓글