Я пытаюсь создать приложение: домашняя страница
Содержит кнопки типа графика и кнопки воспроизведения / паузы. Когда я выбираю указанный c файл и нажимаю на панель, он генерирует график, подобный следующему: гистограмма
Вы также можете увидеть слайдер. При перемещении различные значения читаются из файла CSV и график обновляется. Это событие нажатия кнопки панели.
def bargraph(index = 0):
global pause
global typegraph
typegraph = "bar"
right = df.loc[(df["index"]==index) & (df.foot == "right"),"total_force"].values
left = df.loc[(df["index"]==index) & (df.foot == "left"),"total_force"].values
data = [[left[0],right[0]]]
X = ["left", "right"]
fig = Figure(figsize=(6, 4), dpi=96)
ax = fig.add_subplot(111)
barlist = ax.bar(X , data[0], color = 'b', width = 0.25)
barlist[0].set_color('r')
graph = FigureCanvasTkAgg(fig, master=win)
canvas = graph.get_tk_widget()
canvas.place(x= 300, y = 200)
def updateScale(value):
print ("scale is now %s" % (value))
left = df.loc[(df["index"] == int(value)) & (df['foot'] == "left"), "total_force"].values
right = df.loc[(df["index"] == int(value)) & (df['foot'] == "right"), "total_force"].values
data = [[left[0],right[0]]]
X = ["left", "right"]
ax.clear()
barlist = ax.bar(X , data[0], color = 'r', width = 0.25)
barlist[0].set_color('b')
ax.relim()
ax.autoscale()
#draw canvas
fig.canvas.draw()
fig.canvas.flush_events()
value = tk.DoubleVar()
scale = tk.Scale(win, variable=value, orient="horizontal",length = 200,
from_=df['index'].unique().min(), to=df['index'].unique().max(), resolution =1,command=updateScale)
scale.place(x= 900, y = 200)
Я добавил этот обработчик событий в кнопку воспроизведения:
def startanimation():
global index
global pause
global typegraph
pause = 0
print("pause"+ str(pause))
for i in range(0,100,1):
if pause == 1:
break
if "bar" in typegraph :
index+=1
print("index is "+ str(index))
bargraph(index)
time.sleep(30)
if index == 1302:
print("lenght")
index = 0
break
Но это не обновляет график. Как мне обновлять график после каждой секунды или около того?