来自熊猫数据框的阴影时间序列数据

时间:2019-07-18 18:13:45

标签: python pandas matplotlib time-series

我有两个熊猫数据框:svt_data和asp_data。第一个是时间序列数据,第二个是该序列中的特定时间。我可以使用svt_data.plot()来绘制时间序列数据。然后,我想从第二个数据帧中阴影特定时间。

过去,我通过遍历列表元素并使用matplotlib的plt.axvline函数,而不是使用pandas数据框,而是使用本地python列表。但是,当我遍历数据框元素并使用此函数时,它将生成两个数字而不是一个数字。它在一张图表上从第二个数据帧中遮盖了特定时间,并在另一张图表上给出了时间序列。

我如何在同一地块上找到它们?

    from numpy import *
    from pandas import *
    import pylab as plt

    svt_data = read_csv("D:\\Archives\\workspace\\sizeTimeData.txt", sep=" ", header=None, names=["time", "size"])
    asp_data = read_csv("D:\\Archives\\workspace\\asperityFailTimes.txt", sep=" ", header=None, names=["asp1"])

    for i in asp_data.asp1:
        plt.axvline(i,color=(0,1,0),alpha='0.5')

    svt_data.plot(x='time', y="size", color="black")
    plt.show()

编辑:这是使用列表而不是数据框生成类似图形的样子。

img

我之所以选择熊猫,是因为我的数据集越来越大,并且绘制事物甚至读取数据都花费了不合理的时间。

Zoomed in on one cluster

1 个答案:

答案 0 :(得分:0)

我认为pandas.DataFrame.plot默认情况下会创建一个新图形。
如果仅切换绘图命令,从数据框之前和行之后绘制数据,则将得到一个图形。

svt_data.plot(x='time', y="size", color="black")

for i in asp_data.asp1:
    plt.axvline(i,color=(0,1,0),alpha='0.5')