簡體   English   中英

如何分層兩個不同的起點時間序列數據

[英]how to layered two different start point time-series data

我想獲得兩個時間序列數據相同的起始線並合並。

第一的,

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

fig = plt.figure()

ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2)

#data1
y1 = np.random.randint(0, 100, 150)
x1 = pd.date_range('2020-01-01 00:00:00', periods=150, freq='d')

#data2
y2 = np.random.randint(5, 40, 150)
x2 = pd.date_range('2019-05-01 12:00:00', periods=150, freq='H')

#plot
ax1.plot(x1, y1)
ax2.plot(x2, y2)

plt.show()

起始線相同未合並

此 output 的起始行相同,但未合並。('2020-01-01 00:00:00' 和 '2019-05-01 12:00:00' 在 x 軸上從 0 開始。)

第二,

ax1 = fig.add_subplot(1, 1, 1)
ax1 = fig.add_subplot(1, 1, 1)

#data1
y1 = np.random.randint(0, 100, 150)
x1 = pd.date_range('2020-01-01 00:00:00',periods=150,freq='d')

#data2
y2 = np.random.randint(5, 40, 150)
x2 = pd.date_range('2019-05-01 12:00:00',periods=150,freq='H')

#plot
ax1.plot(x1, y1)
ax1.plot(x2, y2)

plt.show()

起始行不同並合並

這個 output 是合並的,但是起始行不同。

所以,我想得到相同的起始行並合並的 plot 。

我想要那樣

鑒於您正在調用pandas ,您可能會考慮僅使用pandas的解決方案。

import numpy as np
import pandas as pd

# Data
df1 = pd.DataFrame(
    {"date": pd.date_range('2020-01-01 00:00:00',periods=150,freq='d'),
     "y1": np.random.randint(0, 100, 150)})

df2 = pd.DataFrame(
    {"date": pd.date_range('2019-05-01 12:00:00',periods=150,freq='H'),
     "y2": np.random.randint(5,40,150)})

# Outer merge data
df = pd.merge(df1, df2, on=["date"], how="outer")

# Plot
df.plot(x="date", figsize=(10, 5));

在此處輸入圖像描述

我並沒有真正理解這個問題,但我想您希望數據具有相同的起點。 但是,在同一個 plot 上,對於該 plot 上的所有數據,x 軸應該是相同的。 您需要做的就是更改數據的起點,並將頻率從'H''d'或反向更改,但一些數據的時間線會丟失。 這是您的代碼的外觀:

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

fig = plt.figure()

ax1 = fig.add_subplot(1, 1, 1)

#data1
y1 = np.random.randint(0, 100, 150)
x1 = pd.date_range('2020-01-01 00:00:00', periods=150, freq='d')

#data2
y2 = np.random.randint(5, 40, 150)
x2 = pd.date_range('2020-01-01 00:00:00', periods=150, freq='d')

#plot
ax1.plot(x1, y1)
ax1.plot(x2, y2)

plt.show()

output 是這樣的在此處輸入圖像描述

暫無
暫無

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

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