首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图解时程

图解时程
EN

Stack Overflow用户
提问于 2022-07-04 07:09:16
回答 1查看 41关注 0票数 2

我试图创建一个简单的函数,允许用户将时间历史分成两部分。用户应该能够单击并返回x轴值,以便将输出划分为两个DataFrames。

代码语言:javascript
复制
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:]

我研究了plotlydash,以及我在matplotlib中可以找到的任何东西,但是我看不到的任何东西都不能对生成图形的代码进行回调,只有在图本身内进行回调。我确信有一些简单的方法可以做到这一点,但我找不到。

EN

回答 1

Stack Overflow用户

发布于 2022-07-04 11:31:44

我想我已经找到了一个答案,但是如果任何更专业的人都能改进的话,我会很高兴的:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72852923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档