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

  1. set_xscale()또는set_yscale()함수
  2. semilogx()또는semilogy()함수
  3. loglog()함수

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()

산출:

scalex() 함수를 사용하여 Matplotlib의 로그 축을 플롯

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()

산출:

yscale() 함수를 사용하여 Matplotlib의 로그 축을 플롯

두 축을 따라 로그 값을 설정하려면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()

산출:

xscale 및 yscale 함수를 사용하여 두 축 모두에 로그 스케일로 플롯

여기서basey = 2는 Y 축에 따른2의 로그를 나타냅니다.

semilogx()또는semilogy()함수

semilogx() 함수semilogy() 함수는 Y 축을 따라 로그 배율이 지정된 플롯을 만듭니다. 기본 로그의 기본은 10이고 base는 각각semilogx()semilogy()에 대해basexbasey 매개 변수로 설정할 수 있습니다.

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() 함수를 사용하여 Matplotlib의 로그 축을 플롯

두 축을 따라 로그 값을 설정하기 위해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()

산출:

semilogx 및 semilogy 함수를 사용하여 두 축 모두에 로그 스케일로 플롯

loglog()함수

X 축과 Y 축을 따라 로그 스케일링을하려면loglog()함수를 사용할 수도 있습니다. X 축과 Y 축에 대한 로그의 기본은basexbasey 매개 변수에 의해 설정됩니다.

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()

산출:

loglog 함수를 사용하여 두 축에 로그 스케일로 플롯

관련 문장 - Matplotlib Axes

  • Matplotlib에서 축의 한계를 설정하는 방법
  • Matplotlib에서 축을 반전시키는 방법
  • 관련 문장 - Matplotlib Logarithm Axes

  • Matplotlib에서 2 차 Y 축에 Y 축 레이블을 추가하는 방법