Reputation: 49
I have 4 data frames, which are df, df1, df2
and df3
.I have plotted these data into a scatter plot.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.figure()
x1 = df['x'].loc['2020-01-01 00:00':'2020-01-01 00:59']
y1 = df1['y']
plt.scatter(x1, y1)
x2 = df['x'].loc['2020-01-01 01:00':'2020-01-01 01:59']
y2 = df2['y']
plt.scatter(x2, y2)
x3 = df['x'].loc['2020-01-01 02:00':'2020-01-01 02:59']
y3 = df3['y']
plt.scatter(x3, y3)
To plot trend line, I use the below code found in stackoverflow.
z = np.polyfit(x1, y1, 1)
p = np.poly1d(z)
plt.plot(x1,p(x1))
plt.show()
However, this only gives the trendline from df1
. I would like to plot a trendline which includes the data from df1, df2 and df3
.
Upvotes: 1
Views: 1037
Reputation: 976
It uses data only from df1
, as you send only the df1
to the code which plots your trend.
something like:
x_full = x1.append(x2).append(x3)
y_full = y1.append(y2).append(y3)
z = np.polyfit(x_full, y_full , 1)
p = np.poly1d(z)
plt.plot(x_full, p(x_full))
plt.show()
but please check documentation on how you append series, i.e. y1,y2,y3
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html
Upvotes: 2