簡體   English   中英

如何訪問 autocorrelation_plot 生成的數據?

[英]How can I access the data generated by autocorrelation_plot?

我使用 Pandas 中的 function autocorrelation_plot繪制了自相關線,並希望訪問它生成的數據。

我基本上是在嘗試找出(定位)我的數據集中的滯后點。

如何做到這一點?

在此處輸入圖像描述

以下應該有效:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

data = np.array(range(5)) * 10

ax = pd.plotting.autocorrelation_plot(data)

在此處輸入圖像描述

ax是一個AxesSubplot

<matplotlib.axes._subplots.AxesSubplot at 0x7f8b52758470>

它有一個名為lines的屬性

[<matplotlib.lines.Line2D at 0x7f8b51c30f28>,
 <matplotlib.lines.Line2D at 0x7f8b51c39390>,
 <matplotlib.lines.Line2D at 0x7f8b51c397b8>,
 <matplotlib.lines.Line2D at 0x7f8b51c39ba8>,
 <matplotlib.lines.Line2D at 0x7f8b51c39f98>,
 <matplotlib.lines.Line2D at 0x7f8b51c423c8>]

如果你現在遍歷這些:

for li in ax.lines:
    print(li.get_xydata())

你得到

[[0.         1.15194588]
 [1.         1.15194588]]
[[0.         0.87652254]
 [1.         0.87652254]]
[[0. 0.]
 [1. 0.]]
[[ 0.         -0.87652254]
 [ 1.         -0.87652254]]
[[ 0.         -1.15194588]
 [ 1.         -1.15194588]]
[[ 1.   0.4]
 [ 2.  -0.1]
 [ 3.  -0.4]
 [ 4.  -0.4]
 [ 5.   0. ]]

所以,我們可以看到:

xydata = ax.lines[-1].get_xydata()

array([[ 1. ,  0.4],
       [ 2. , -0.1],
       [ 3. , -0.4],
       [ 4. , -0.4],
       [ 5. ,  0. ]])

如果您想要單獨的數據,您可以執行以下操作:

xdata = ax.lines[-1].get_xdata()
# array([1, 2, 3, 4, 5])

ydata = ax.lines[-1].get_ydata()
# array([ 0.4, -0.1, -0.4, -0.4,  0. ])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM