Удаление линий из живого графика - PullRequest
0 голосов
/ 22 февраля 2020

Я создал gui, который может включать или выключать живые данные. Когда я переключаю данные в информации, они появляются точно так, как ожидалось, но когда я пытаюсь отключить их, генерируемые данные остаются и не исчезают, как я ожидал. Мой код выглядит следующим образом, любая помощь очень ценится!

if clap1.get()==1:
    data1 = pd.read_csv('test1.csv')
    x1=data1['x_value']
    y1=data1['total_1']

    global line1
    #xlim_low, xlim_high = sensor_graph.get_xlim()
    #ylim_low, ylim_high = sensor_graph.get_ylim()

    if x1.max() > 20000:
        xlim_low = x1.max()-20000
    else:
        xlim_low, xlim_high = sensor_graph.get_xlim()

    sensor_graph.set_xlim(xlim_low, (x1.max() + 5))

    line1, = sensor_graph.plot(x1, y1, label="Test 1", color='black')
    checks[0] = 1
elif  clap1.get()==0 and checks[0]==1:
    sensor_graph.lines.remove(line1)
    checks[0] = 0

Я думаю, что следует отметить, что для данных stati c это может правильно удалить данные, проблема возникла, когда я пытался для реальных данных.

Обновление

Хорошо, так что в итоге я получил отклик грубой силы, который в конечном итоге делает то, что я хотел. По сути, я просто очищаю все от фигуры, а затем заново инициализирую оси, как показано ниже. Если у кого-то есть идеи, как это улучшить, пожалуйста, не стесняйтесь!

if clap1.get()==1:
    data1 = pd.read_csv('test1.csv')
    x1=data1['x_value']
    y1=data1['total_1']

    global line1
    xlim_low, xlim_high = sensor_graph.get_xlim()
    #ylim_low, ylim_high = sensor_graph.get_ylim()
    '''
    if x1.max() > 20000:
        xlim_low = x1.max()-20000
    else:
        xlim_low, xlim_high = sensor_graph.get_xlim()
    '''
    sensor_graph.set_xlim(xlim_low, (x1.max() + 5))

    line1, = sensor_graph.plot(x1, y1, label="Test 1", color='orange')
    checks[0] = 1
elif  clap1.get()==0 and checks[0]==1:
    sensor_graph.clear()
    title = "Sensor Pressure Readings"
    sensor_graph.set_title(title)
    sensor_graph.set_xlabel('time (s)')
    checks[0] = 0

[Код с комментариями предназначен только для того, чтобы в любой момент времени отображать на экране столько информации]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...