Python - Построение динамического набора данных - PullRequest
0 голосов
/ 02 мая 2018

У меня есть набор данных, который получает ввод вручную, добавляя строки по одной. Я хочу создать диаграмму рассеяния для построения графика данных и обновления при добавлении дополнительных данных. Используя matplotlib, как бы я обновил существующий сюжет вместо того, чтобы перерисовывать весь объект? У меня есть весь сюжет, это просто добавление очков. Итак, вот что у меня есть:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt


df = pd.DataFrame([[1, 3.00]], columns=['At_Bat', 'Stand'])

plt.ion()

x = np.arange(0, 999, 0.1)

y1 = -5
y2 = .75
y3 = 2.25
y4 = 5

plt.fill_between(x, y1, y2, color='lawngreen', alpha='.6')
plt.fill_between(x, y2, y3, color='yellow', alpha='.6')
plt.fill_between(x, y3, y4, color='red', alpha='.6')

plt.scatter(df.At_Bat, df.Stand)
plt.plot(df.At_Bat, df.Stand)
plt.axhline(y=0, color='black')
plt.xticks(np.arange(0, df.Stand.max() + 1))
plt.ylim([-4, 4])
plt.xlim([0, df.Stand.max() + 1])

df2 = pd.DataFrame([[2, 2.50]])
df = np.append(df, df2, axis = 0)

Таким образом, df содержит первую точку, а затем добавляется каждая дополнительная точка, используя df2 и append.

1 Ответ

0 голосов
/ 02 мая 2018

Просто добавьте

plt.scatter(df2[0], df2[1])

после вашего кода - это должно добавить следующую точку данных, сохраненных в df2, к существующему графику.

Если вам не нравится другой цвет, вы можете сохранить первую точку в вашем коде в такой переменной, как

ps = plt.scatter(df.At_Bat, df.Stand)

и добавьте новые данные потом, как

plt.scatter(df2[0], df2[1], fc = ps.get_facecolor())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...