Search code examples
pythonpandasnumpymatplotlibtrendline

How can I draw scatter trend line?


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


Solution

  • 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