尝试创建简单的线条图

时间:2018-08-05 15:58:28

标签: python matplotlib plot tkinter

无论如何,还是可以在tkinter中创建一个简单的线条绘图仪,我很难在Google上找到帮助。

我想拥有一个GUI,可以为二次公式指定A,B和C值。 (我可以做的部分)

然后单击按钮,使用上方的值在Ax ^ 2 + Bx + C下方创建图。

非常感谢

1 个答案:

答案 0 :(得分:1)

由于问题是用matplotlib标记的,因此您可以使用它完成完整的GUI。对于输入,您可以使用matplotlib.widgets.TextBox并使用文本框的编号评估某些表达式。

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

fig, ax = plt.subplots()
ax.set_title("Plot $Ax^2 + Bx + C$")
kws = dict(color='.95', hovercolor='1', label_pad=0.01)
axA = fig.add_axes([0.7,.9,.05,.05])
txA = TextBox(axA, "A: ", initial='2', **kws)
axB = fig.add_axes([0.8,.9,.05,.05])
txB = TextBox(axB, "B: ", initial='2', **kws)
axC = fig.add_axes([0.9,.9,.05,.05])
txC = TextBox(axC, "C: ", initial='2', **kws)

line, = ax.plot([])

def update(arg=None):
    A = float(txA.text)
    B = float(txB.text)
    C = float(txC.text)

    x = np.linspace(-4,4)
    y = A*x**2 + B*x + C

    line.set_data(x,y)
    ax.relim()
    ax.autoscale_view()
    fig.canvas.draw_idle()

txA.on_submit(update)
txB.on_submit(update)
txC.on_submit(update)

update()

plt.show()

enter image description here