Введение
В ходе статьи научимся создавать графики обновляемые в режиме реального времени на языке программирования 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. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂
Мой Telegram канал
Мой YouTube канал