Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[Python] matplotlib default 설정 본문

프로그래밍 Programming/파이썬 Python

[Python] matplotlib default 설정

보통의공대생 2022. 7. 16. 15:53

 

딥러닝 후에 visualization할 때 일일이 세팅을 정해줘야해서 번거롭다.

그래서 default setting을 위한 코드들을 미리 작성하고 필요할 때마다 복사해서 사용하고자 한다.

 

좋은 코드를 발견하면 계속 추가할 예정이다.

 

1. Grid setting

import matplotlib as mpl

# grid setting
mpl.rcParams['grid.color'] = '#808080'
mpl.rcParams['grid.linestyle'] = '--'
mpl.rcParams['grid.linewidth'] = 0.5
mpl.rcParams.update({"axes.grid" : True})

 

위의 세 줄은 색상, line style, linewidth에 대한 설정이다.

색상은 

v.2.0에 적힌 'C0' 등을 쓰면 default로 지정된 '#1f77b4'를 쓸 수 있다.

그리고 HEX 색상 코드도 색을 지정할 때 사용할 수 있다.

위에서 나는 회색 색상을 쓰기 위해 회색에 해당하는 '#808080'을 사용했다.

 

 

2. 그래프 Font 설정

# mpl.rcParams['font.size'] = 16 # xlabel, ylabel 등에 쓰이는 font
mpl.rcParams['legend.fontsize'] = 16 # legend font size
mpl.rcParams['figure.titlesize'] = 18
mpl.rcParams['axes.titlesize'] = 18  # title font size
mpl.rcParams['lines.linewidth'] = 2.0
mpl.rcParams['axes.labelsize'] = 18
mpl.rcParams['xtick.labelsize'] = 14
mpl.rcParams['ytick.labelsize'] = 14

font.size의 경우에는 범용적으로 폰트 사이즈를 바꾸는 데 쓰이는데

다소 어떤 부분을 바꾸고 싶은지 특정하기 애매해서 주석처리했다.

 

 

3. 그래프에 LaTeX를 사용하고 싶을 때

plt.rcParams['text.usetex'] = True

 

그리고 실제로 LaTeX를 쓰고 싶다면 string에

plot(x,y, label=r'$\delta$)

 

다음과 같이 r + '$(수식)$'을 조합하여 써야한다.

 

 

4. 그래프 색깔 순서 정하고 싶을 때

 

from cycler import cycler
mpl.rcParams['axes.prop_cycle'] = cycler(color='brgcmyk')

 

이렇게 지정하면 한 figure 안에서 그래프가 생성될 때마다 brgcmyk 순서로 생성

 

5. 그래프 크기 정하기

 

# figure size
plt.rcParams["figure.figsize"] = (6.4, 4.8)

# cm단위로 쓰고 싶을 때
def cm_to_inch(value):
    return value/2.54
plt.figure(figsize=(cm_to_inch(15),cm_to_inch(10)))

 

그래프 사이즈가 inch로 되어있어서 불편한 점이 많다.

 

https://sosomemo.tistory.com/62

 

위 글에서 픽셀 단위로 그래프 크기를 조정할 수 있는 방법에 대해 설명하므로 참고하면 좋을 것 같다.

 

 

6. 그래프 margin 제거

 

# tight axis
plt.rcParams['axes.xmargin'] = 0

matplotilb은 그림을 저장할 때 보면 margin을 추가한다. 그래서 그래프를 LaTeX로 그릴 때 그래프가 마진 때문에 상대적으로 작아보이는 효과가 있었다.

그래서 마진을 0으로 두었다.

 

 

7. 그래프 폰트 지정

 

plt.rcParams['font.family'] = 'serif'

그래프 기본 폰트도 지정할 수 있다. 자세한 내용은 동일한 블로그의 다음 글을 참고.


default 속성에 대한 더 자세한 내용을 알기 위해서는 다음 링크를 참고하도록 하자.

https://matplotlib.org/stable/users/prev_whats_new/dflt_style_changes.html#fonts

 

Changes to the default style — Matplotlib 3.5.2 documentation

The default font has changed from "Bitstream Vera Sans" to "DejaVu Sans". DejaVu Sans has additional international and math characters, but otherwise has the same appearance as Bitstream Vera Sans. Latin, Greek, Cyrillic, Armenian, Georgian, Hebrew, and Ar

matplotlib.org

 

 

Comments