주로 사용하는 설정들 중, 특히 자주 사용하는 옵션들은 다음과 같이 정의해두고 있습니다. 예로들어 tick은 inward로 해야 한다거나, 외곽선의 두께는 일정수준이 되어야 한다거나 등의 부분입니다. 무엇보다도 다음과 같이 설정해두면, 한 Jupyter Notebook내에서 figure 설정이 동일하게 적용되므로 일관성있게 그래프를 보여 줄 수 있습니다.
# this overwrite all the global option
import matplotlib as mpl
# ticks inward everywhere
mpl.rcParams['xtick.direction'] = 'in'
mpl.rcParams['ytick.direction'] = 'in'
# control tick length/width too
mpl.rcParams['xtick.major.size'] = 6
mpl.rcParams['ytick.major.size'] = 6
mpl.rcParams['xtick.major.width'] = 1.2
mpl.rcParams['ytick.major.width'] = 1.2
mpl.rcParams['xtick.minor.size'] = 3
mpl.rcParams['ytick.minor.size'] = 3
mpl.rcParams['xtick.minor.width'] = 0.8
mpl.rcParams['ytick.minor.width'] = 0.8
# control axis (spine) line thickness
mpl.rcParams['axes.linewidth'] = 1.5
그렇다면 해당 설정을 바탕으로, 위아래로 합친 그래프는 다음과 같이 구성할 수 있습니다. 여기서 Fabio Crameri의 Scientific colour maps의 경우 다음글을 참조하시면 됩니다.
import numpy as np
import matplotlib.pyplot as plt
colP = cm.batlow([0.2, 0.7])
w_test = np.linspace(0, 2.*np.pi, 100)
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(6, 6),
gridspec_kw={'hspace': 0.0})#, constrained_layout=True)
ax1.plot(w_test/np.pi, np.sin(w_test), '-', c=colP[0], lw=2.5)
ax2.plot(w_test/np.pi, np.cos(w_test), '-', c=colP[1], lw=2.5)
ax1.set_ylabel(r'$f_1(x)$', fontsize=15)
ax2.set_ylabel(r'$f_2(x)$', fontsize=15)
ax2.set_xlabel(r'$x$', fontsize=15)
ax2.set_xticks([0, 0.5, 1, 1.5, 2], [r'0', r'$\frac{1}{2}\pi$', r'$\pi$', r'$\frac{3}{2}\pi$', r'$2\pi$'])
ax1.tick_params(labelsize=15)
ax2.tick_params(labelsize=15)
ax1.axis([0, 2, -1.1, 1.1])
ax2.axis([0, 2, -1.1, 1.1])
plt.savefig('figs_style/vert_merge_fig.pdf', bbox_inches='tight')

Leave a Reply