Matplotlib 중급

축 범위, 눈금, 로그 스케일

축 범위를 정하고, 눈금의 위치와 레이블을 고르고, set_yscale로 로그 스케일로 바꿉니다.

소개

Matplotlib은 축 범위와 눈금을 알아서 고르지만, 직접 정하는 편이 나을 때가 많습니다. set_xlim과 set_ylim은 보이는 범위를, set_xticks는 눈금의 위치와 표시할 글자를 정하고, set_yscale("log")를 쓰면 두 배씩 늘어나는 값이 직선으로 보입니다.

사용자 수가 매주 두 배가 되므로 일반 축에서는 처음 몇 주가 평평해 보이고 마지막 몇 주만 치솟습니다. 로그 스케일에서는 두 배가 될 때마다 같은 높이만큼 올라가므로 선이 곧아지고 모든 주를 읽을 수 있습니다. set_xticks(x, labels)는 주마다 눈금을 두고 W1, W2 등으로 이름을 붙이며, set_xlim은 양 끝에 약간의 여유를 둡니다.

인터랙티브 시각화

로그 스케일을 켜고 꺼 보세요. 일반 축에서는 처음 몇 주가 0 근처에 묻히지만, 로그 스케일에서는 두 배가 될 때마다 같은 높이만큼 올라갑니다.

실행 가능한 Matplotlib 예제

Matplotlib
코드 실행 →
main.py
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1, 11)
users = 50 * 2.0 ** x

fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, users, marker="o")
ax.set_yscale("log")
ax.set_xlim(0.5, 10.5)
ax.set_xticks(x, [f"W{i}" for i in x])
ax.set_xlabel("Week")
ax.set_ylabel("Users (log scale)")
ax.set_title("Users double every week")
plt.show()
이 예제의 실행 버튼 만들기 이 코드가 그리는 차트
축 범위, 눈금, 로그 스케일