Как сделать так, чтобы ось Y была в возрастающем порядке в matplotlib.animation?Sentdex учебник - PullRequest
0 голосов
/ 06 октября 2018
import matplotlib.pyplot as plt
import matplotlib.animation as animation

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

def animate(i):
    graph_data = open('example.txt','r').read()
    lines = graph_data.split('\n')
    xs = []
    ys = []
    for line in lines:
        if len(line) > 1:
            x, y = line.split(',')
            xs.append(x)
            ys.append(y)
    ax1.clear()
    ax1.plot(xs, ys)

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

Есть ли другой способ написать код так, чтобы ось Y находилась в порядке возрастания?Если так.где мне его найти?Это из руководства по senddex matplotlib

1 Ответ

0 голосов
/ 08 октября 2018

Лучшее решение состоит в том, чтобы не делать все вручную и полагаться на простое чтение данных.Также может быть полезно не очищать оси в каждом цикле.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()
line, = ax.plot([],[])

def animate(i):
    x,y = np.loadtxt("data/example.txt", unpack=True, delimiter=",")
    line.set_data(x,y)
    ax.relim()
    ax.autoscale_view()

ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...