MatplotLib 그래프

Namung's Sea·2021년 11월 25일
0

NIPA AI 온라인 교육

목록 보기
16/18
post-thumbnail

Line plot

fig, ax = plt.subplots() # ()여기가 공란이면 1개의 figure가 만들어짐
x = np.arange(15) # 0~14
y = x ** 2 # x제곱. x의 3제곱은 x ** 3
ax.plot(
x, y,
linestyle=":", # ":" -> 점으로 연결되는 걸 표시하는 것을 의미함.
marker="*", # 점이 * 모양
color="#524FA1" # 색
)

Line style

x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, linestyle="-") # 두 번째 x는 y값이 들어오는 자리. 동일한 값이 채워짐 -> 파란색 선. 참고로 여기 색은 교육으로 색을 구분하기 위해 default로 설정한 것.
# solid

ax.plot(x, x+2, linestyle="--") # 주황색 선
# dashed

ax.plot(x, x+4, linestyle="-.") # 초록색 선
# dashdot

ax.plot(x, x+6, linestyle=":") # 빨간색 선
# dotted

자주 사용되는 옵션

기호의미
-실선
대시 선
-.대시 점 선
:점선

Color

x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, color="r") # red
ax.plot(x, x+2, color="green")
ax.plot(x, x+4, color="0.8") # 0.8 = 0~1 사이의 gray scale을 의미함.
ax.plot(x, x+6, color="#524FA1") # puple

Marker

x = np.arange(10)
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="*") # 보라선

자주 사용되는 옵션

기호의미기호의미
.,픽셀
os사각형
v, <, ^, >삼각형1, 2, 3, 4삼각선
p오각형H, h육각형

축 경계 조정하기

x = np.linspace(0, 10, 1000) # 괄호 안 : start, end, step 순서
fig, ax = plt.subplots()
ax.plot(x, np.sin(x))
ax.set_xlim(-2, 12) # lim = limit. x축의 한계를 -2부터 12까지 하라.
ax.set_ylim(-1.5, 1.5)

범례

x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(x, x, label='y=x') # label로 무엇인지 표시해 줌.
ax.plot(x, x**2, label='y=x^2') # 
ax.set_xlabel("x") # 라벨 세팅
ax.set_ylabel("y")
ax.legend(loc='upper right', # legend = 범례 지정
shadow=True,
fancybox=True, # 모서리를 둥글게.
borderpad=2) # 범례의 네모난 칸 크기

자주 사용되는 위치 옵션

loc

문자형code문자형code
‘best’0‘center left’6
‘upper right’1‘center right’7
‘upper left’2‘lower center’8
‘lower left’3‘upper center’9
‘lower right’4‘center’10
‘right’5--

[실습 1] 선 그래프

문제

  1. 파란색 선 그래프의 linestyle실선으로, marker으로 변경해보세요.

2.빨간색 선 그래프의 linestyle대시 점 선으로, marker픽셀로 변경해보세요.

from elice_utils import EliceUtils
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

elice_utils = EliceUtils()

#이미 입력되어 있는 코드의 다양한 속성값들을 변경해 봅시다.
x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(
    x, x, label='y=x',
    linestyle=':',
    marker='o',
    color='blue'
)
ax.plot(
    x, x**2, label='y=x^2',
    linestyle='--',
    marker='^',
    color='red'
)

# elice에서 그래프를 확인
fig.savefig("plot.png")
elice_utils.send_image("plot.png")

code

from elice_utils import EliceUtils
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

elice_utils = EliceUtils()

#이미 입력되어 있는 코드의 다양한 속성값들을 변경해 봅시다.
x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(
    x, x, label='y=x',
    linestyle='-',
    marker='.',
    color='blue'
)
ax.plot(
    x, x**2, label='y=x^2',
    linestyle='-.',
    marker=',',
    color='red'
)

# elice에서 그래프를 확인
fig.savefig("plot.png")
elice_utils.send_image("plot.png")

실행 결과

[실습 2] 그래프 범례

문제

문자형이나 code를 통해 범례의 위치를 왼쪽 중간으로 변경해보세요.

from elice_utils import EliceUtils
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

elice_utils = EliceUtils()

x = np.arange(10)
fig, ax = plt.subplots()
ax.plot(
    x, x, label='y=x',
    linestyle='-',
    marker='.',
    color='blue'
)
ax.plot(
    x, x**2, label='y=x^2',
    linestyle='-.',
    marker=',',
    color='red'
)
ax.set_xlabel("x")
ax.set_ylabel("y")

#이미 입력되어 있는 코드의 다양한 속성값들을 변경해 봅시다.
ax.legend(
    loc='upper left',
    shadow=True,
    fancybox=True,
    borderpad=2
)

# elice에서 그래프를 확인
fig.savefig("plot.png")
elice_utils.send_image("plot.png")

code

ax.legend(
    loc='center left',
    shadow=True,
    fancybox=True,
    borderpad=2
)

실행 결과

profile
개발자로 시작| 공부한 것을 기록합니다.

0개의 댓글