Python matplotlib

장준휴·2023년 10월 23일

Python

목록 보기
1/3

matplotlib

matplotlib는 python에서 그래프를 그려주는 라이브러리이다.
개발자가 원하는 데이터를 차트로 그려주는데, 종류로는 산점도, 막대그래프, 파이그래프, 히스토그램, 꺾은선 그래프 등 다양한 종류로 그릴 수 있다.

import를 통해 라이브러리를 받아와야한다.

import matplotlib.pyplot as plt

기본적인 그래프(선그래프) 그려보기

y = [2,12,6]
plt.plot(y)
#x좌표는 0부터 1씩 증가하며 자동 할당됨
plt.show()
# 위쪽에서 그렸던 plot(그래프) 들을 출력함

마지막에 show()를 해줘야 그래프가 출력 된다.

#x축, y축 설정해서 그려보기
x = [1,2,3]
y = [2,4,6]
plt.plot(x,y, ls=':', color = 'r', lw = 1, marker = 'D', mec='b', mfc='y', ms=15)
plt.show()
  • 라인의 스타일 지정 : ls=''
  • 라인의 두께 지정: lw
  • 선의 색 바꾸기 : c(color) >> 선 색과 마커의 색까지 모두 변경
  • 값의 위치 표시 : marker
  • 마커 내부 색깔 : mfc
  • 마커 선 색깔 : mec
  • 마커 크기 : ms
  • 마커 선 굵기 : mew



외우지 말고 그때그때 찾아서 하면 된다.

https://www.rapidtables.org/ko/web/css/css-color.html

  • 색상 코드 표 사이트이다.
x = np.arange(8)
y = [5,2,3,6,8,7,5,7]

plt.plot(x,y, ls=':', color = 'r', marker = '$♬$', ms = 8, mec='b')
# $표시 넣으면 원하는 이모지 넣을 수 있음

#그래프 숫자 표시 범위 지정(xlim, ylim)
#범위 지정해서 그래프 확대, 축소 출력 가능
plt.xlim(-2,10)
plt.ylim(-5, 12)

#그리드 그리기
plt.grid()

#눈금 출력하기
plt.yticks(y) #y데이터 표시
plt.xticks(x) #x데이터 표시
plt.show()

matplotlib의 한글이 깨지는 경우가 종종 있다.
이럴때는 encoding방식을 지정해줘야한다.

#한글 인코딩 하는 법 - matplotlib 한글이 깨졌을때
from matplotlib import rc
rc('font', family = 'Malgun Gothic')

#font : 폰트를 설정하겠다!
#family : 글꼴 집합이라는 의미로 글꼴명을 적어주면 됨

하나의 그래프만 그릴 수 있는 것은 아니다.
단순히 plt.plot()을 2번 작성하면 2개의 그래프가 겹쳐진다 ㅋㅋ

x = [2,3,4,5,6,7,8]
y1 = [5,7,3,9,1,8,6]
y2 = [9,5,7,2,3,7,1]

plt.plot(x, y1)
plt.plot(x, y2)

#x축 이름 설정
plt.xlabel('X축')
#y축 이름 설정
plt.ylabel('Y', rotation = 0)
plt.show()

산점도 그래프 그려보기

# scatter 그래프 생성하기
df = pd.DataFrame(np.random.rand(800,4), columns=['a','b','c','d'])
plt.scatter(x = df['a'], y = df['b'], label = 'Group1', s=10, c='r')
plt.scatter(x = df['c'], y = df['d'], label = 'Group2', s=10)
plt.legend()
plt.show()

먼저, 랜덤 데이터 프레임을 생성하고 scatter 그래프의 좌표 를 지정해준다.
그 후 이름 출력해주면서 출력!

막대 그래프 그래보기

x = [0,1,2,3,4,5]
y = [80,95,70,60,50,90]
plt.bar(x, y, color = 'aqua')
plt.xlabel('스인개 반')
plt.ylabel('점수', rotation = 0)
#plt.text(x좌표, y좌표, 작성하고싶은 값)
plt.show()


부가적인 코드를 제외하고 실제 데이터만 가지고 그래프를 그리고자 한다면 아주 간단한 코드이다.

수평 막대 그래프

x = ['a','b','c','d','e','f']
y = [80,85,70,60,50,90]
plt.barh(x,y)
plt.show()

정리

.plot() : 막대그래프
.scatter() : 산점도
.bar() : 막대그래프
.barh() : 수평막대그래프
.xlabel() : x축 이름
.ylabel() : y축 이름
.title() : 그래프 이름
.fiqure(figsize=()) : 그래프 사이즈
.ylim() : y축 범위

profile
나는야 토마토

0개의 댓글