簡體   English   中英

如何讓 plot 在每次運行 for 循環后都顯示出來,而不是讓線條堆積起來

[英]How to make a plot show everytime after a run through a for loop and not let the lines stack up

我試圖顯示 4 個自相關圖,每列 1 個,其值為我的 dataframe。 我正在使用 for 循環使其顯示 4 次。 但結果是自相關 plot 僅顯示一次,有 4 行,而不是顯示 4 次,每個 plot 僅顯示 1 行。 我的代碼如下:(忽略正在導入但未使用的庫)

from dateutil.parser import parse
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
plt.rcParams.update({'figure.figsize': (5, 3), 'figure.dpi': 120}
from statsmodels.tsa.seasonal import seasonal_decompose
from dateutil.parser import parse
from scipy import signal
from pandas.plotting import autocorrelation_plot

# Import Data
ser = pd.read_csv('Time series analysis dataset Weekly.csv', parse_dates=['Date'], index_col='Date')
ser = ser[ser.YearOfDate != 2020]

ValueNames = ['Europe', 'Total', 'International', 'Distributor']
ColorsList = ['Blue','Green','Orange','Purple','Brown']

# Draw Plot
plt.rcParams.update({'figure.figsize':(7,4), 'figure.dpi':120})
for ValueRound in range(0,len(ValueNames)):
   autocorrelation_plot(ser[f'{ValueNames[ValueRound]}'].tolist())

我通過運行腳本得到的結果是

在此處輸入圖像描述

由於 for 循環,繪制了 4 行,每個值名稱 1 行。 期望的結果是每 1 行有 4 個單獨的圖。 在我使用普通 plot 的其他腳本中,我在 for 循環中使用了 plt.plot.show() 。 這導致 4 個圖只有 1 條線。 我如何為自相關 plot 執行此操作?

我按照本指南進行時間序列分析https://www.machinelearningplus.com/time-series/time-series-analysis-python/ ,我的腳本基於第 14 章中的腳本:如何測試季節性.

這是另一張帶有所需 plot 的圖片。 為了得到這個 plot,我只循環拋出了 for 循環 1 次,導致值名稱 Europe 只有一行。

在此處輸入圖像描述

通過在 for 循環的末尾添加plt.show()而不是plt.plot.show()解決了問題

暫無
暫無

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

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