HOWTO · Matplotlib

Matplotlib에서 로그 축을 그리는 방법

Matplotlib에서 set_yscale(), semilogy() 및 loglog() 함수를 사용하여 로그 축을 플로팅 할 수 있습니다.

이 페이지의 내용

set_xscale() 또는 set_yscale()를 사용하면 각 축의 스케일을 독립적으로 설정할 수 있습니다. 두 축 모두 로그 스케일로 표시하려면 loglog()를 사용하세요. semilogx()와 semilogy()는 각각 x축과 y축에 로그 스케일을 적용하는 도우미 함수입니다.
아래의 세 코드 예제는 모두 성공적으로 실행되었습니다.

set_xscale() 또는 set_yscale() 함수

x축을 로그 스케일로 설정하려면 set_xscale("log")를 호출하고, y축에는 set_yscale("log")를 호출하세요. 두 함수를 모두 호출하면 양쪽 축을 로그 스케일로 설정할 수 있습니다. 다음은 양수인 숫자 데이터를 그리면서 두 축을 모두 로그 스케일로 설정하는 완전한 예제입니다.

import matplotlib.pyplot as plt

x = [1, 10, 100, 1000]
y = [2, 5, 20, 80]

fig, ax = plt.subplots()
ax.plot(x, y, marker="o")
ax.set_xscale("log")
ax.set_yscale("log")
ax.set_xlabel("x")
ax.set_ylabel("y")
print(f"x-axis: {ax.get_xscale()}, y-axis: {ax.get_yscale()}")
plt.close(fig)

표준 log 스케일은 양수 값을 나타냅니다. 데이터에 양수와 음수가 함께 있다면 해당 축에 symlog를 사용하세요. 예를 들어 ax.set_yscale("symlog")를 설정하면 0을 기준으로 양쪽에 있는 값을 표시할 수 있습니다.

semilogx() 또는 semilogy() 함수

x축은 로그 스케일로, y축은 선형 스케일로 유지하려면 semilogx()를 사용하세요. y축을 로그 스케일로, x축을 선형 스케일로 표시하려면 semilogy()를 사용하면 됩니다. 두 함수 모두 x 데이터와 y 데이터를 인수로 받으므로, 그래프를 그리는 호출에서 적용할 스케일을 명확히 지정할 수 있습니다. 두 축 모두 로그 스케일로 표시하려면 loglog()를 사용하거나 같은 축에 semilogx()와 semilogy()를 함께 적용하세요.

import matplotlib.pyplot as plt

x = [1, 10, 100, 1000]
y = [2, 5, 20, 80]

fig, ax = plt.subplots()
ax.semilogx(x, y, marker="o", label="logarithmic x")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.legend()
print(f"x-axis: {ax.get_xscale()}, y-axis: {ax.get_yscale()}")
plt.close(fig)

loglog() 함수

두 축 모두 로그 스케일이 필요하면 loglog()를 사용하세요. 이 함수는 전달된 x 데이터와 y 데이터를 그린 뒤 두 축에 표준 로그 스케일을 설정합니다. 다음은 양수인 숫자 값을 사용하는 완전한 예제입니다.

import matplotlib.pyplot as plt

x = [1, 10, 100, 1000]
y = [2, 5, 20, 80]

fig, ax = plt.subplots()
ax.loglog(x, y, marker="o")
ax.set_xlabel("x")
ax.set_ylabel("y")
print(f"x-axis: {ax.get_xscale()}, y-axis: {ax.get_yscale()}")
plt.close(fig)