I want to draw a scatter trend line on matplot. How can I do that?
Python
import pandas as pd import matplotlib.pyplot as plt csv = pd.read_csv('/tmp/test.csv') data = csv[['fee', 'time']] x = data['fee'] y = data['time'] plt.scatter(x, y) plt.show()
CSV
fee,time 100,650 90,700 80,860 70,800 60,1000 50,1200
time is integer value.
Scatter chart
I'm sorry I found the answer by myself.
How to add trendline in python matplotlib dot (scatter) graphs?
Python
import pandas as pd import numpy as np import matplotlib.pyplot as plt csv = pd.read_csv('/tmp/test.csv') data = csv[['fee', 'time']] x = data['fee'] y = data['time'] plt.scatter(x, y) z = np.polyfit(x, y, 1) p = np.poly1d(z) plt.plot(x,p(x),"r--") plt.show()
Chart
With text:
from sklearn.metrics import r2_score plt.plot(x,y,"+", ms=10, mec="k") z = np.polyfit(x, y, 1) y_hat = np.poly1d(z)(x) plt.plot(x, y_hat, "r--", lw=1) text = f"$y={z[0]:0.3f}\;x{z[1]:+0.3f}$\n$R^2 = {r2_score(y,y_hat):0.3f}$" plt.gca().text(0.05, 0.95, text,transform=plt.gca().transAxes, fontsize=14, verticalalignment='top')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With