Обновление сюжета с помощью Matplotlib на той же фигуре - PullRequest
0 голосов
/ 13 декабря 2018

Я новичок в Python (поэтому прошу прощения заранее, если то, что у меня есть, плохо составлено), и я пытаюсь сделать фигуру, которая отображает координаты по мере их изменения, извлеченную из веб-сайта на фоновом изображении карты.У меня все это до того момента, когда он отображает координаты на карте, но не может заставить MatPlotLib обновить график на том же рисунке.На данный момент он просто закрывается и перерисовывает новую фигуру каждые 5 секунд.Я пробовал много разных решений, включая plt.draw (), но не могу заставить его работать с тем, что у меня сейчас есть.

from lxml import html
import requests
import time
import numpy as np
import matplotlib.pyplot as plt

----------------------------------------

request = requests.get('url with coordinates')

while request.status_code == 200:

    page = requests.get('url with coordinates')
    tree = html.fromstring(page.content)
    coord = tree.xpath('string(/html/body/text()[30])')

    longlat = coord[13:]

    Longitude = longlat.split(',')[0]
    ['longitude', 'latitude']

    Latitude = longlat.split(', ')[1]
    ['longitude', 'latitude']

-----------------------------------------

    img = plt.imread("backgroundmap.png")
    fig, ax = plt.subplots()

    ax.imshow(img, extent=[min and max coordinates])
    plt.axis([min and max coordinates])


    plt.plot(Latitude, Longitude , 'ro')
    plt.axis('off')

    plt.show(block=False)

    time.sleep(5)
    plt.close()

Есть ли простой способ изменить то, что у меня есть выше, чтобы заставить его заново нарисовать координатный график на том же рисунке 1 вместо его закрытия и создания нового?Спасибо

1 Ответ

0 голосов
/ 14 декабря 2018

Вы можете использовать .set_data() из объекта Line2D.

Вот пример:

fig,ax = plt.subplots()
P = ax.plot(range(5),[0,2,8,3,0])

, который возвращает:

enter image description here

И затем вы обновите данные из построенной линии с помощью:

P[0].set_data(range(5),[0,1,2,3,4])

, что изменит цифру на:

enter image description here

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