我要瘋了……這應該是一個簡單的練習,但我被卡住了:
我有一個 Jupyter 筆記本并且正在使用
相反,當我想要用數字填充子圖時......
uj5u.com熱心網友回復:
我基本上不得不重新創建ruptures.display(data,result)產生的情節,以獲得我想要的數字:
import pandas as pd
import numpy as np
import ruptures as rpt
import matplotlib.pyplot as plt
from matplotlib.ticker import EngFormatter
fig, axs = plt.subplots(len(df.columns), figsize=(22,20), dpi=300)
for index, series in enumerate(df):
resampled = df[series].dropna().resample('6H').mean().pad()
data = resampled.to_numpy().astype(int)
algo = rpt.KernelCPD(kernel='rbf', min_size=4).fit(data)
result = algo.predict(pen=3)
# Create ndarray of tuples from the result
result = np.insert(result, 0, 0) # Insert 0 as first result
tuples = np.array([ result[i:i 2] for i in range(len(result)-1) ])
ax = axs[index]
# Fill area beween results alternating blue/red
for i, tup in enumerate(tuples):
if i%2==0:
ax.axvspan(tup[0], tup[1], lw=0, alpha=.25)
else:
ax.axvspan(tup[0], tup[1], lw=0, alpha=.25, color='red')
ax.plot(data)
ax.set_title(series)
ax.yaxis.set_major_formatter(EngFormatter())
plt.subplots_adjust(hspace=.3)
plt.show()
我在這件事上浪費的時間比我能證明的要多,但現在很漂亮,今晚我可以睡得很好 :D

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383668.html
標籤:Python 熊猫 matplotlib jupyter-笔记本
