График обновляемый в реальном времени на Python

График обновляемый в реальном времени на Python Статьи

Введение

В ходе статьи научимся создавать графики обновляемые в режиме реального времени на языке программирования Python при помощи библиотеки matplotlib.

Установка модуля

Для начала работы с модулем matplotlib, его необходимо установить. Для этого нужно перейти в терминал, или же командную строку, прописать pip install matplotlib, нажать Enter и ждать установки.

Написание кода

После установки модуля matplotlib, мы его импортируем из него pyplot и animation:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

Создадим экземпляр класса figure, и добавим к нему область Axes:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

Создадим функцию animate, параметром которой будет i. Внутри функции мы считываем файл stock.txt. В данном файле будут храниться координаты, которые мы будем заполнять в режиме реального времени.

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


def animate(i):
    data = open('stock.txt', 'r').read()

При помощи метода split() будем разделять строки в файле. В качестве разделителя укажем ‘\n’:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


def animate(i):
    data = open('stock.txt', 'r').read()
    lines = data.split('\n')

Создадим списки xs и ys:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


def animate(i):
    data = open('stock.txt', 'r').read()
    lines = data.split('\n')

    xs = []
    ys = []

Так как координаты мы будем заполнять через запятую (x, y), нам нужно их разделить по разным спискам. Создадим цикл, в котором будут заполняться списки xs и ys:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


def animate(i):
    data = open('stock.txt', 'r').read()
    lines = data.split('\n')

    xs = []
    ys = []

    for line in lines:
        x, y = line.split(',')
        xs.append(float(x))
        ys.append(float(y))

Очистим Оси и добавим координаты xs и ys в график:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


def animate(i):
    data = open('stock.txt', 'r').read()
    lines = data.split('\n')

    xs = []
    ys = []

    for line in lines:
        x, y = line.split(',')
        xs.append(float(x))
        ys.append(float(y))

    ax.clear()
    ax.plot(xs, ys)

Добавим надписи по x и y. Допустим по x у нас будет название, а по y — цена. Также добавим заголовок графика:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


def animate(i):
    data = open('stock.txt', 'r').read()
    lines = data.split('\n')

    xs = []
    ys = []

    for line in lines:
        x, y = line.split(',')
        xs.append(float(x))
        ys.append(float(y))

    ax.clear()
    ax.plot(xs, ys)

    plt.xlabel('Название')
    plt.ylabel('Цена')
    plt.title('График обновляемый в режиме реального времени')

Осталось вызвать анимацию и отобразить график:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)


def animate(i):
    data = open('stock.txt', 'r').read()
    lines = data.split('\n')

    xs = []
    ys = []

    for line in lines:
        x, y = line.split(',')
        xs.append(float(x))
        ys.append(float(y))

    ax.clear()
    ax.plot(xs, ys)

    plt.xlabel('Название')
    plt.ylabel('Цена')
    plt.title('График обновляемый в режиме реального времени')


ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()

Итог:

Видеоурок

Создание графика обновляемого в режиме реального времени на Python

Заключение

В ходе статьи мы с Вами научились создавать график обновляемый в режиме реального времени на языке программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start