我有4个数据框,它们是df, df1, df2和df3.I将这些数据绘制成散点图。
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)为了绘制趋势线,我使用了stackoverflow中的以下代码。
z = np.polyfit(x1, y1, 1)
p = np.poly1d(z)
plt.plot(x1,p(x1))
plt.show()然而,这只给出了来自df1的趋势线。我想画一条趋势线,其中包括来自df1, df2 and df3的数据。
发布于 2021-01-19 17:13:57
它只使用来自df1的数据,因为您只将df1发送到绘制趋势的代码。
类似于:
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()但请查看有关如何附加系列的文档,例如y1,y2,y3 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html
https://stackoverflow.com/questions/65787599
复制相似问题