본문 바로가기
데이터분석/Matplotlib &Seaborn

matplotlib 그래프 그리기 디테일한 부분 모음모음

by ADELA_J 2023. 7. 3.

그래프 그릴때 문자열과 숫자표현하게 될 때 차이점

 

1. x축이 문자열일때

▲ 깔끔하게 x축의 지정한 값들만 나온다.

 

2. x축 y축 둘다 문자열로 하게되면 

▲ x,y 축 딱 정해진 값들만 나옴

 

3. 둘다 숫자로했을때

▲ 소수점까지 내가 지정하지 않은 값 까지 나옴.

 

 

- bar에서 align = 'edge'랑 'center'의 차이가 무엇인가..... 는 바로

align center이고요 (이게 기본형입니다)
align edge입니다

<여러 그래프 그리는 방식 1번>

fig.axs = plt.subplots(열갯수, 행갯수, 위치) 이렇게 해서 여러개 그래프 그릴 수도 있지만

이렇게 튜플형식으로 행/열 이름을 두고 잡아주고 그려주게되면 해당 변수가 위치 값이 된다

그럼 이런식으로 위치값을 잡아서 그래프를 그려주면됨

====> 어쨌든 그래프는 figure (figsize =()) 그려주고 ( 없어도 상관은 없는데 사이즈 조정하려면 이거 써줘야함)

 >>>>> 그 위에 그래프를 그리는것 

 

<여러그래프 그리는 방식 2번> 

우리가 자주 쓰던 fig= plt.figure(사이즈)

 + fig.add_subplot 쓰면됩니다

<여러 그래프 그리던 방식 3번>

-  인덱스 값을 줘서 지정하는것도 가능!

출처는 matplotlib 공식 사이트

● 최종 정리

2번 figure.add_subplot() : figure 객체를 이용해 서브플롯을 만든다. 

1번  plt.subplot() : axes of subplot을 반환한다. return 값을 사용해도 되고 return 값 없이 plt.plot처럼 사용해도된다.

 >>> 비어있는 figure 객체에 subplot 이 들어가있는 것. 

>>> 쓸때도  이런식으로.. 하나의 그래프를 하나씩 전달받아서 사용되는 느낌?

 - plt.subplots() : subplots에서 figure와 axs를 여러 개를 받아서 각각에 ax에 대해 그래프를 그린다.

>> 그런데 subplots는 하나씩 하나씩 객체를 fig와 ax(s)에 전달받아서 사용되는

이렇게 쓰면 비어있는 figure 2개가 실행됨(하나는 빈거 또 하나는 2*2 빈그래프가 있는것)

subplots로 하면 fig, ax 객체 2개로 전달

162, 163을 실행했을때 나오는 그래프

 

그래서 연습해보기

https://dev-adela.tistory.com/119

>> 그 전 포스팅 맨마지막에서 했었던 <p.339 연습문제 풀어보기>

- 1,2번 방식은 좀 해봤지만 3번은 낯선 방법이라 3번으로 다시 코드를 만들어봤음.

▼ 결과 : for문 돌릴때 좀 더 편해짐...ㅎ.. (위치잡기는 더 좋은듯)

 

< 만약 y나 x축 에 마이너스를 하는데 나오지 않는다면? >

import matplotlib as mpl

이렇게 설정값을 변경해주면 마이너스 기호가 정상적으로 표시된다.

 

< 한글이 나오게 하고 싶다면?>

plt.bar, plt.hist 등 그래프를 그리기 전에 

plt.rcParams['font.family'] = '글꼴이름' 을 먼저 해주고 그래프를 그려줘야 글자가 나온다.

 

<x축의 라벨 각도 조절하기>

 - xticks 매개변수 중 rotation이 있다 (마이너스도 된다)

▶ 다시한번 짚고 넘어가는 xticks ( 위치할 곳, 라벨 이름, 로테이션,  등등 다른 매개변수)