Как я могу нарисовать линию тренда рассеяния на матплоте? 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

время является целочисленным значением.

Точечная диаграммавведите здесь описание изображения


person zono    schedule 13.01.2017    source источник
comment
Извините, я не знаком с термином и пандами. Думаю, я нашел ответ. Я обновлю свой вопрос.   -  person zono    schedule 13.01.2017
comment
Возможный дубликат Как добавить линию тренда в точку python matplotlib ( разброс) графики?   -  person Brad Solomon    schedule 14.10.2019


Ответы (3)


Мне жаль, что я нашел ответ сам.

Как добавить линию тренда в точечные (рассеянные) графики python matplotlib ?

питон

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

Диаграмма

введите описание изображения здесь

person zono    schedule 13.01.2017

С текстом:

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

введите описание изображения здесь

person Ashot Matevosyan    schedule 30.11.2019

Вы также можете использовать Seaborn lmplot:

import seaborn as sns

import pandas as pd

from io import StringIO

textfile = StringIO("""fee,time
100,650
90,700
80,860
70,800
60,1000
50,1200""")

df = pd.read_csv(textfile)

_ = sns.lmplot(x='fee', y='time', data=df, ci=None)

Выход:

введите здесь описание изображения

person Scott Boston    schedule 30.11.2019