함께하는 데이터 분석

[Python] Matplotlib 선 그래프와 배경 꾸미기 본문

데이터분석 공부/Python

[Python] Matplotlib 선 그래프와 배경 꾸미기

JEONGHEON 2022. 3. 28. 23:11

이번에는 선 그래프를 그렸던 것을 바탕으로

 

선 그래프의 모양이나 배경을 꾸미는 것을 알아보겠습니다.

 

라이브러리 불러오기

import matplotlib.pyplot as plt
import random

 

 

x, y 리스트 설정

x = [i for i in range(1, 11)]

random.seed(42)
y=[]
for i in range(1,11):
    z=random.randint(10,21)
    y.append(z)
print(y)
>>> [20, 11, 10, 21, 14, 13, 13, 12, 21, 11]

 

 

선 굵기 설정

plt.plot(x, y)
plt.show()

이것이 기본으로 나오는 선의 굵기입니다.

 

선의 굵기를 조금 키워보겠습니다.

 

plt.plot(x, y, linewidth = 12)
# plt.plot(x, y, lw = 12)
plt.show()

선의 굵기가 확실이 커진 것을 볼 수 있죠.

 

이때 linewidth의 약자인 lw를 사용해도 똑같은 결과가 나옵니다.

 

 

마커(Marker)

plt.plot(x, y, marker = 's')
plt.show()

기본과는 다르게 점의 모양이 바뀌는 것을 볼 수 있습니다.

 

다른 모양도 그려볼까요?

 

plt.plot(x, y, marker = 'p', markersize = 15)
# plt.plot(x, y, marker = 'p', ms = 15)
plt.show()

이번엔 marker에 p를 넣어서 오각형 모양이 들어갔죠.

 

추가로 markersize를 통해 크기를 조금 키워봤습니다.

 

markersize도 ms로 축약하여 사용하실 수 있습니다.

 

plt.plot(x, y, marker = 'x', markersize = 15)
# plt.plot(x, y, marker = 'x', ms = 15)
plt.show()

 

plt.plot(x, y, marker = 'd', markersize = 15, markeredgecolor = 'purple')
# plt.plot(x, y, marker = 'd', ms = 15, mec = 'purple')
plt.show()

이번에는 markeredgecolor인자를 추가하여

 

marker의 가장자리 색깔을 보라색으로 설정했습니다.

 

역시 mec로 축약하여 사용하시면 됩니다.

 

plt.plot(x, y, marker = 'd', markersize = 15, markeredgecolor = 'orchid', markerfacecolor = 'indigo')
# plt.plot(x, y, marker = 'd', ms = 15, mec = 'orchid', mfc = 'indigo')
plt.show()

이번에는 markerfacecolor인자를 추가하여

 

marker안의 색깔을 변경했습니다.

 

mfc로 축약 사용 가능합니다.

 

 

선 스타일

plt.plot(x, y, marker = 'o', linestyle = 'None')
# plt.plot(x, y, marker = 'o', ls = 'None')
plt.show()

linestyle을 None으로 설정해서 선을 없애줬습니다.

 

ls로 단축하여 쓰실 수도 있습니다.

 

이번에는 다른 linestyle을 써볼까요?

 

plt.plot(x, y, linestyle = '-.')
# plt.plot(x, y, ls = '-.')
plt.show()

 

plt.plot(x, y, linestyle = ':')
# plt.plot(x, y, ls = ':')
plt.show()

 

 

선 색깔

plt.plot(x, y, linestyle = '-.', color = 'red')
plt.show()

선 색깔 설정은 color인자를 통하여 간편하게 설정이 가능합니다.

 

plt.plot(x, y, linestyle = '--', color = 'aqua')
plt.show()

 

 

포맷

plt.plot(x, y, 'ro--') # color, marker, linestyle 
plt.show()

color, marker, linestyle을 인자 없이 값만 입력하여 결과를 한 번에 도출할 수 있습니다.

 

위를 예로 들면 red, o, --로 설정한 것입니다.

 

추가로 예시를 보여드리겠습니다.

 

plt.plot(x, y, 'gv:')
plt.show()

green, v, :입니다.

 

plt.plot(x, y, 'bd-.')
plt.show()

blue, d, -.입니다.

 

 

투명도 설정

plt.plot(x, y, marker='v', mfc='pink', ms=12, mec='green', ls=':', alpha=0.3)
plt.show()

alpha인자를 추가하여 투명도를 낮춰줬습니다.

 

alpha값의 범위는 0~1 사이입니다. 

 

original그래프랑 비교해보겠습니다.

 

plt.plot(x, y, marker='v', mfc='pink', ms=12, mec='green', ls=':')
plt.show()

확실히 차이가 나는 것이 보이죠.

 

 

그래프 크기 설정

plt.figure(figsize=(20, 5))
plt.plot(x, y)
plt.show()

모바일 환경에서 보시는 분은 모르실 수 있겠지만

 

plt.figure에 figsize를 설정하여

 

가로에 20을 주고 세로에 5를 줘서 

 

가로가 긴 직사각형 모양의 그래프로 크기가 설정되었습니다.

 

plt.figure(figsize=(5, 10))
plt.plot(x, y)
plt.show()

이번에는 반대로 세로가 긴 직사각형 모양의 그래프 판이죠.

 

 

그래프 배경색 설정

plt.figure(facecolor = 'skyblue')
plt.plot(x, y)
plt.show()

배경색은 plt.figure에 facecolor를 설정하여 배경색을 지정해줬습니다.

 

 

종합

plt.figure(figsize = (10, 5), facecolor = 'aqua')
plt.plot(x, y, marker = 'v', ls = '-.', mec = 'black', \
mfc = 'green', color = 'purple', ms = 15, alpha = 0.5)
plt.show()

이렇게 위에서 사용한 것들을

 

종합적으로 설정할 수 있습니다.