matplotlib中是否存在文本/数字输入字段?

Mar*_*oma 6 python forms matplotlib

是否存在文本和/或数字输入字段matplotlib

我见过小部件Slider,但这是不同的东西.我想要一个简单的数字输入字段.

Qua*_*LII 8

您正在寻找2.1中添加的TextBox交互式小部件:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import TextBox
fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.2)
t = np.arange(-2.0, 2.0, 0.001)
ydata = t ** 2
initial_text = "t ** 2"
l, = plt.plot(t, ydata, lw=2)


def submit(text):
    ydata = eval(text)
    l.set_ydata(ydata)
    ax.set_ylim(np.min(ydata), np.max(ydata))
    plt.draw()

axbox = plt.axes([0.1, 0.05, 0.8, 0.075])
text_box = TextBox(axbox, 'Evaluate', initial=initial_text)
text_box.on_submit(submit)

plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 如果我正确理解[this](https://github.com/matplotlib/matplotlib/pull/6988),则确实会从2.1版开始构建(很好!)。但是,我强烈建议从该示例_especially_中删除“ eval(text)”,因为“ text”是由坐在计算机前的任何人键入的。 (4认同)

Ffi*_*ydd 4

目前不存在可用于将数字作为文本输入的小部件。如果您选择了一小部分离散数字,那么您可以使用单选按钮,也可以按照您已经建议的那样使用滑块。

你最好是使用Tkinter构建一个完整的 GUI 。这将允许您添加您需要的任何 GUI 元素。还可以在 Tkinter 中嵌入 matplotlib 图形,如此处和此处两个示例所示。