import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
Axes Details
Axis Aspect and Limits
기본적으로 \((0,0)\)과 \((1,1)\) 사이의 정사각형 영역을 그리는 것을 볼 수 있습니다. 하지만 가로세로비가 \(1\)이 아닙니다. 가로세로비는 높이와 너비의 비율인데, set_aspect()
를 사용하여 변경할 수 있습니다.
= plt.figure(), plt.axes() fig, ax
= plt.figure(), plt.axes()
fig, ax 1) ax.set_aspect(
set_xlim()
및 set_ylim()
을 사용하여 최소값과 최대값을 설정할 수 있습니다. 만약, 최소/최대값을 명시적으로 설정하지 않으면 데이터에 따라 최대/최소값을 설정합니다. 당연히 해당 값은 get_xlim()
및 get_ylim()
메서드를 사용하여 확인할 수 있습니다. 최대/최소값에 따라서 차트 요소가 잘립니다. 설정을 통해서 차트 요소를 출력할 수 있지만, 권장하진 않습니다.
= plt.figure(), plt.axes()
fig, ax 1)
ax.set_aspect(
= np.linspace(0,2*np.pi,100)
u = np.cos(u)
x = np.sin(u)
y
-1, y)
ax.plot(x
+1, y, clip_on = False)
ax.plot(x
-1,1) ax.set_xlim(
Axis Lines and Spines
기본적으로 차트를 둘러싸인 선을 스파인(spines)이라고 합니다. 플롯에서와 같이 \(y=0\) 및 \(x=0\)의 일반적인 \(x\)축 및 \(y\)축 선에 익숙한 경우 기본값이 어색할 수도 있습니다.
= plt.figure(), plt.axes()
fig, ax "Zero Spines and Arrows")
ax.set_title(-1,1], [-1,1])
ax.plot([
for spine in 'top', 'right':
False)
ax.spines[spine].set_visible(
for spine in 'bottom', 'left':
'zero')
ax.spines[spine].set_position(
= ax.get_xlim()
xlims = ax.get_ylim()
ylims
1], 0, ">k", clip_on = False)
ax.plot(xlims[0, ylims[1], "^k", clip_on = False)
ax.plot(
ax.set_xlim(xlims) ax.set_ylim(ylims)
Ticks
눈금(tick)에 중요한 ax 메서드는 set_xticks()
, set_xticklabels()
등을 활용할 수 있습니다.
= plt.figure(), plt.axes()
fig, ax = np.arange(10, 30, 1)
x = np.random.normal(size = len(x))
y
ax.plot(x,y)
ax.xaxis.set_ticks(x)
# ax.yaxis.tick_right()
# ax.xaxis.set_ticks_position('top')
"Plot #5") ax.set_title(
Text(0.5, 1.0, 'Plot #5')
Grids
플롯에 격자선을 포함하는 것은 일반적으로 권장하지 않습니다. 격자선과 눈금의 위치는 set_major_locator()
및 set_minor_locator()
메서드로 설정할 수 있습니다.
= plt.figure(), plt.axes()
fig, ax False)
ax.xaxis.grid(True, linewidth = 3)
ax.yaxis.grid(True, which = 'minor', linewidth = 0.5)
ax.yaxis.grid(.1)) ax.yaxis.set_minor_locator(mpl.ticker.MultipleLocator(