Python Matplotlib, как построить несколько графиков на одном рисунке - PullRequest
1 голос
/ 21 июня 2020

Это мой код

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

from matplotlib import style

style.use('fivethirtyeight')


def animate(i):
    graph_data = open('data.txt','r').read()
    lines = graph_data.split('\n')
    xs = []
    ys = []

    for line in lines:
        if len(line) > 1:
            x, y = map(int, line.split(','))
            xs.append(x)
            ys.append(y)
    ax1.clear()
    ax1.plot(xs,ys)

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

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

data.txt и data2.txt похожи на:

0,1040
1,1074
2,1106
3,1123
4,1093
5,1067
6,1099
7,1121
8,1139

Теперь у меня есть еще один файл data2.txt, и мне нужно построить график График на таком же рисунке похож на «перекрытие». Как это сделать с помощью этого кода?

1 Ответ

0 голосов
/ 21 июня 2020

Вы можете использовать интерактивный режим matplotlib, вызвав plt.ion(). Предполагая, что ваши файлы названы в формате data {data1, data2, data3 ..}, сохраните их в виде списка, используя glob. Затем вы можете получить перекрывающиеся строки, считанные из разных файлов, как показано здесь:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
import glob

style.use('fivethirtyeight')
#data files stored as a list in files
files=glob.glob('*data*')

fig, ax = plt.subplots()
plt.ion()
plt.show()

for i in files:
    x,y = np.loadtxt(i,unpack=True,delimiter=',')
    line = ax.plot(x,y,label=i)
    plt.gcf().canvas.draw()
    plt.legend(loc=2)
    plt.pause(1)

введите описание изображения здесь

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