tkinter中的滚动条,用于matplotlib

时间:2019-05-11 12:28:31

标签: python matplotlib tkinter scrollbar

我对如何将matplotlib与tkinter或pyqt结合在一起经验很少。 我需要在matplotlib图表上使用水平滚动条。 我想水平缩放图形并从头开始滚动图形 到从文件加载的数据的末尾。 在查看示例之后,我添加了滚动条。 但是她对图表完全没有反应。)

当我关闭窗口时,该过程并没有结束(如何删除不理解的示例,请参见此处的示例enter link

import tkinter
from tkinter import *
from matplotlib.backends.backend_tkagg import (
    FigureCanvasTkAgg, NavigationToolbar2Tk)
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

root = tkinter.Tk()

x = pd.read_csv('file.txt',
                    index_col='DATE',
                    parse_dates=True,
                    infer_datetime_format=True)
z = x.iloc[:, 3].values
N = len(z)
ind = np.arange(N)
fig, ax = plt.subplots()
ax.plot(ind, z)

canvas = FigureCanvasTkAgg(fig, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)

toolbar = NavigationToolbar2Tk(canvas, root)
toolbar.update()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)

scrollbar = tkinter.Scrollbar(master=root, orient=HORIZONTAL)
scrollbar.pack(side=tkinter.BOTTOM, fill=X)

tkinter.mainloop()

添加一行后

scrollbar["command"] = canvas.get_tk_widget().xview

如前所述-MaxiMouse。 图形滚动,但不沿整个长度滚动。 放大后,我需要滚动才能处理所有数据。我将其显示在视频的末尾。

enter image description here

1 个答案:

答案 0 :(得分:0)

将其放在F[2^n - 1]调用之前:

tkinter.mainloop()