Matplotlib에서 로그 축을 그리는 방법
Matplotlib에서 세미 로그 그래프를 그리려면set_xscale()
또는set_yscale()
및semilogx()
또는semilogy()
함수를 사용합니다. 로그 축에 두 축을 모두 설정해야하는 경우에는 loglog() 함수를 사용합니다.
set_xscale()
또는set_yscale()
함수
set_xscale()
또는set_yscale()
함수를 사용하여 X
축과 Y
축의 스케일링을 각각 설정합니다. 함수에 log
또는 symlog
스케일을 사용하면 각 축이 로그 스케일로 표시됩니다. set_xscale()
또는set_yscale()
함수와 함께 log
스케일을 사용하면 symlog
스케일을 사용하면 양수 값과 음수 값을 모두 허용하면서 음수 값을 관리하는 방법을 통해 양수 값만 허용합니다.
import pandas as pd
import matplotlib.pyplot as plt
date = ["28 April", "27 April", "26 April", "25 April", "24 April", "23 April"]
revenue = [2954222, 2878196, 2804796, 2719896, 2626321, 2544792]
company_data_df = pd.DataFrame({"date": date, "total_revenue": revenue})
company_data = company_data_df.sort_values(by=["total_revenue"])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data["total_revenue"], company_data["date"])
plt.plot(company_data["total_revenue"], company_data["date"])
plt.xscale("log")
plt.xlabel("Total Revenue")
plt.ylabel("Date")
plt.title("Company Growth", fontsize=25)
plt.show()
출력:
Y 축을 따라 로그 축을 설정하기 위해, yscale()
함수를 사용하여 Y 축 스케일을log
로 설정할 수 있습니다.
import pandas as pd
import matplotlib.pyplot as plt
date = ["28 April", "27 April", "26 April", "25 April", "24 April", "23 April"]
revenue = [2954222, 2878196, 2804796, 2719896, 2626321, 2544792]
company_data_df = pd.DataFrame({"date": date, "total_revenue": revenue})
company_data = company_data_df.sort_values(by=["total_revenue"])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data["date"], company_data["total_revenue"])
plt.plot(company_data["date"], company_data["total_revenue"])
plt.yscale("log")
plt.xlabel("Date")
plt.ylabel("Total Revenue")
plt.title("Company Growth", fontsize=25)
plt.show()
출력:
두 축을 따라 로그 값을 설정하려면xscale()
및yscale()
함수를 모두 사용합니다.
import pandas as pd
import matplotlib.pyplot as plt
x = [10, 100, 1000, 10000, 100000]
y = [2, 4, 8, 16, 32]
fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.grid()
plt.xscale("log")
plt.yscale("log", basey=2)
plt.xlabel("x", fontsize=20)
plt.ylabel("y", fontsize=20)
plt.title("Plot with both log axes", fontsize=25)
plt.show()
출력:
여기서basey=2
는 Y 축에 따른2
의 로그를 나타냅니다.
semilogx()
또는semilogy()
함수
semilogx()
함수는 semilogy()
함수는 Y 축을 따라 로그 배율이 지정된 플롯을 만듭니다. 기본 로그의 기본은 10이고 base는 각각semilogx()
및semilogy()
에 대해basex
및basey
매개 변수로 설정할 수 있습니다.
import pandas as pd
import matplotlib.pyplot as plt
date = ["28 April", "27 April", "26 April", "25 April", "24 April", "23 April"]
revenue = [2954222, 2878196, 2804796, 2719896, 2626321, 2544792]
company_data_df = pd.DataFrame({"date": date, "total_revenue": revenue})
company_data = company_data_df.sort_values(by=["total_revenue"])
fig = plt.figure(figsize=(8, 6))
plt.scatter(company_data["total_revenue"], company_data["date"])
plt.plot(company_data["total_revenue"], company_data["date"])
plt.semilogx()
plt.xlabel("Total Revenue")
plt.ylabel("Date")
plt.title("Company Growth", fontsize=25)
plt.show()
출력:
두 축을 따라 로그 값을 설정하기 위해semilogx()
와semilogy()
함수를 모두 사용할 수 있습니다:
import pandas as pd
import matplotlib.pyplot as plt
x = [10, 100, 1000, 10000, 100000]
y = [2, 4, 8, 16, 32]
fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.grid()
plt.semilogx()
plt.semilogy(basey=2)
plt.xlabel("x", fontsize=20)
plt.ylabel("y", fontsize=20)
plt.title("Plot with both log axes", fontsize=25)
plt.show()
출력:
loglog()
함수
X 축과 Y 축을 따라 로그 스케일링을하려면loglog()
함수를 사용할 수도 있습니다. X 축과 Y 축에 대한 로그의 기본은basex
와basey
매개 변수에 의해 설정됩니다.
import pandas as pd
import matplotlib.pyplot as plt
x = [10, 100, 1000, 10000, 100000]
y = [2, 4, 8, 16, 32]
fig = plt.figure(figsize=(8, 6))
plt.scatter(x, y)
plt.plot(x, y)
plt.loglog(basex=10, basey=2)
plt.xlabel("x", fontsize=20)
plt.ylabel("y", fontsize=20)
plt.title("Plot with both log axes", fontsize=25)
plt.show()
출력:
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn