我试图创建一个简单的函数,允许用户将时间历史分成两部分。用户应该能够单击并返回x轴值,以便将输出划分为两个DataFrames。
import pandas as pd
import numpy as np
df = pd.DataFrame({"data": np.random.rand(100)})
def split_TH(df):
df.plot()
#User clicks where the split should be: callback from graph is time `t`
return df.iloc[:t], df.iloc[t:]我研究了plotly和dash,以及我在matplotlib中可以找到的任何东西,但是我看不到的任何东西都不能对生成图形的代码进行回调,只有在图本身内进行回调。我确信有一些简单的方法可以做到这一点,但我找不到。
发布于 2022-07-04 11:31:44
我想我已经找到了一个答案,但是如果任何更专业的人都能改进的话,我会很高兴的:
df = pd.DataFrame({"data": np.random.rand(100)})
def split_TH(df):
fig, ax = plt.subplots()
df.plot(ax = ax)
def onclick(event):
global t
t = event.xdata
cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.waitforbuttonpress()
return df[:int(t)], df[int(t):]
df1, df2 = split_TH(df)https://stackoverflow.com/questions/72852923
复制相似问题