Log-Log 스케일에서의 직선으로 추세선을 그리면, 이는 다음과 같은 수식으로 표현될 수 있다.

$$ log(y) = alog(x) + b\\ log(y)=log(x^a)+log(e^b)\\ log(y)=log(x^ae^b)\\ y=x^a*e^b $$

그러면 연립방정식을 대입할 때도, 역시 log스케일에서의 값을 그대로 맨위의 직선의 방정식에 넣어서 문제를 풀 수 있다. (지수함수의 연립방정식은 울프람알파로도 풀수가 없다)

https://www.wolframalpha.com/input/?i=Solve+0.94+%3D+a*-6+%2B+b%2C+0.425%3Da*6+%2B+b

https://www.wolframalpha.com/input/?i=Solve+0.94+%3D+a*-6+%2B+b%2C+0.425%3Da*6+%2B+b

그래서 아래와 같이 log-log 그래프에서 직선으로 표현된 추세선 그래프를 그릴 수도 있으며, 이때 수식의 표현은 당연히 지수함수 식으로 표현되어야한다.

plt.text(-5.65, 0.44, r"$L=1.978*H^{-0.0429}$", fontsize=26, fontproperties=fontprop,
        bbox=dict(boxstyle='round', facecolor='beige', edgecolor="black", alpha=0.5))
x1, y1, x2, y2 = (-6, 0.94, 6, 0.425)
plt.axline((x1, y1), (x2, y2), linestyle="--", linewidth=2, marker = 'o', color='b')

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6873623b-0e76-444c-81f2-4a7b03844cbd/Untitled.png

또한 아래와 같이 원래 scale의 그래프에서도 그래도 동작함을 확인할 수 있다.

plt.text(-5.65, 0.44, r"$L=1.978*H^{-0.0429}$", fontsize=26, fontproperties=fontprop,
        bbox=dict(boxstyle='round', facecolor='beige', edgecolor="black", alpha=0.5))
x = np.linspace(0.0000001, 50, 100)
y = np.power(x, a) * np.exp(b)
plt.plot(x, y, linestyle="--", linewidth=3, color='b')

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8d2cc0c7-cc41-42cc-a9c6-bc7639c8e135/Untitled.png

Font와 Tex 문법

위 소스코드에서 사용된 font와 Tex 수식은 아래 링크에서 확인가능하다.

Matplotlib Visualization 팁