【matplotlib.pyplot】 레이아웃을 정돈하기 위한 치트 시트

jupyter 등에서 matplotlib로 쓴 그래프를 발표 등으로 사용할 때 레이아웃이 엉망으로 슬퍼지는 것은 없습니까?
그런 때에 참고하고 싶어지는 치트 시트를 만들어 보았습니다.

공식 문서는 이쪽

1. 플롯


%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y); 

마지막 줄의 세미콜론은 jupyter에서 불필요한 출력을 생략하기 위해 작성되었습니다.

출력은 이런 느낌.



2.그림의 타이틀·축의 타이틀을 설정한다


%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.title("y=sin(x)", fontsize=20)
plt.xlabel("x-axis", fontsize=18)
plt.ylabel("y-axis", fontsize=18)

plt.plot(x, y);

출력은 이런 느낌.



3.눈금·그리드를 설정한다


%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.title("y=sin(x)", fontsize=20)
plt.xlabel("x-axis", fontsize=18)
plt.ylabel("y-axis", fontsize=18)
plt.xticks(rotation=-10, fontsize =15)
plt.yticks([-1, -0.5, 0, 0.5, 1], fontsize =15)
plt.minorticks_on() #補助目盛りをつける
plt.grid(which='major') #主目盛りに対してグリッドを書く

plt.plot(x, y);

출력은 이런 느낌.



눈금이 방해가되면,
plt.xticks([])

등을 끼우면 눈금을 지울 수도 있습니다.

4. 좌표축·축의 범위를 설정한다


%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.title("y=sin(x)", fontsize=20)
plt.xlabel("x-axis", fontsize=18)
plt.ylabel("y-axis", fontsize=18)
plt.xticks(rotation=-10, fontsize =15)
plt.yticks([-1, -0.5, 0, 0.5, 1], fontsize =15)
plt.xlim(-1/2, np.pi * 3)
plt.ylim(-1.5, 1.5)
plt.hlines(0, -1, 10) 
plt.vlines(0, -2, 2)
plt.minorticks_on() #補助目盛りをつける
plt.grid(which='major') #主目盛りに対してグリッドを書く

plt.plot(x, y);

출력은 이런 느낌.



5. 그래프 겹치기 / 마커, 범례 설정


%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.title("Trigonometric function", fontsize=20)
plt.xlabel("x-axis", fontsize=18)
plt.ylabel("y-axis", fontsize=18)
plt.xticks(rotation=-10, fontsize =15)
plt.yticks([-1, -0.5, 0, 0.5, 1], fontsize =15)
plt.xlim(-1/2, np.pi * 3)
plt.ylim(-1.5, 1.5)
plt.hlines(0, -1, 10) 
plt.vlines(0, -2, 2)
plt.minorticks_on() #補助目盛りをつける
plt.grid(which='major') #主目盛りに対してグリッドを書く

plt.plot(x, y1, label='sin', marker='+', markersize=5)
plt.plot(x, y2, label='cos', marker='.', markersize=5)
plt.legend(bbox_to_anchor=(1, 1), loc='upper right', borderaxespad=0.5, fontsize=18);

출력은 이런 느낌.



plot시의 마커에 대해 이쪽이 모두 시험해 주시고 있습니다.
htp ///아이 by. 이 m/pぉt_마r케 r/

범례(legend)의 사용법에 대해 정리해 주시고 있습니다. 범례는 제대로 쓰지 않으면 유감스러운 그래프가 되어 버리므로 특히 중요하네요.
h tps:// 퀵했다. 작은 m/마츠이-K20×x/있어 MS/291400 그림 d56 아 39 그림 d63462

6. 총괄·향후 전망



이번에 하나의 플롯의 레이아웃에 대해 정리해 보았습니다.
설정할 수 있는 것이 의외로 많아서 깜짝 놀랐습니다.
fig나 ax를 사용한 복수의 그래프의 작성 방법도 언젠가 스스로 정리해 보려고 생각합니다.
이 분의 qiita가 굉장히 참아 그렇기 때문에, 그 때는 꼭 참고로 하겠습니다.
htps : // 이 m / 펑크 y / ms / d1에 b91에 33b9d6469에 f51
그 외에도 matplotlib의 여러 그래프와 seaborn에 대해서도 정리해보고 싶네요.

좋은 웹페이지 즐겨찾기