Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I draw scatter trend line on matplot? Python-Pandas

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 chartenter image description here

like image 331
zono Avatar asked Jan 13 '17 13:01

zono


2 Answers

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

enter image description here

like image 56
zono Avatar answered Nov 09 '22 02:11

zono


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

enter image description here

like image 25
Ashot Matevosyan Avatar answered Nov 09 '22 03:11

Ashot Matevosyan