gpt4 book ai didi

python - Matplotlib - 用户通过图形输入数字

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:26 25 4
gpt4 key购买 nike

我希望我的图形有一个小的输入窗口,用户可以在其中键入数字,并且绘制的数据将跨越那么多分钟。如果他们输入 30,他们将查看 30 分钟的时间窗口,如果他们输入 5,matplotlib 会选择该时间窗口,数据会被修剪,并且只显示 5 分钟的数据。

我该怎么做?我注意到 SO 上的人推荐使用 TkAgg,有没有办法在没有它的情况下做到这一点?如果我确实使用 TkAgg,您能给我指出一个以交互方式执行此操作的最小示例,即拾取用户创建的新条目吗?

谢谢

编辑:这是流数据,所以我想将条件设置为动态形式,例如“给我最后 15 分钟”而不是“给我在 2:10 到 2:25 之间”。另外,我将自己手动执行数据修剪,GUI 不必这样做。 GUI 只需要读取一个数字并将其提供给我。

更多细节:不用担心幕后发生的事情,我知道如何处理它。我想知道的只是如何从 matplotlib 中的图形上的文本框中读取数字。

最佳答案

我认为如果不使用第 3 方 GUI 程序,您就无法使用文本框完成您想要的操作。下面的示例展示了如何使用 slider 来仅使用 matplotlib 本身来更改绘图的 x 限制。

该示例使用 Slider widget控制 xlimits。您可以找到另一个使用许多小部件的示例 here .

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

# Create some random data
x = np.linspace(0,100,1000)
y = np.sin(x) * np.cos(x)

left, bottom, width, height = 0.15, 0.02, 0.7, 0.10

fig, ax = plt.subplots()

plt.subplots_adjust(left=left, bottom=0.25) # Make space for the slider

ax.plot(x,y)

# Set the starting x limits
xlims = [0, 1]
ax.set_xlim(*xlims)

# Create a plt.axes object to hold the slider
slider_ax = plt.axes([left, bottom, width, height])
# Add a slider to the plt.axes object
slider = Slider(slider_ax, 'x-limits', valmin=0.0, valmax=100.0, valinit=xlims[1])

# Define a function to run whenever the slider changes its value.
def update(val):
xlims[1] = val
ax.set_xlim(*xlims)

fig.canvas.draw_idle()

# Register the function update to run when the slider changes value
slider.on_changed(update)

plt.show()

下面是一些显示 slider 在不同位置的图:

默认(起始)位置

fig 1

将 slider 设置为随机值

fig 2

将 slider 设置为最大值

fig 3

关于python - Matplotlib - 用户通过图形输入数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25449398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com