У меня есть два .txt файла этой формы с тысячами строк
episode:2840 score:6.0 memory length:700345 epsilon:0.5576491831247304 steps:359 recent reward:5.95
episode:2841 score:4.0 memory length:700629 epsilon:0.5574965123606621 steps:284 recent reward:5.96
episode:2842 score:5.0 memory length:700911 epsilon:0.5573449596383373 steps:282 recent reward:5.93
Max lifes :5
episode:2800 score:7.0 memory length:687331 epsilon:0.5646918805492361 steps:268 recent reward:6.04
episode:2801 score:5.0 memory length:687678 epsilon:0.5645029051613243 steps:347 recent reward:6.03
episode:2802 score:6.0 memory length:688027 epsilon:0.564312906709082 steps:349 recent reward:6.03
Я хочу построить график изменения столбца recent_reward
над episodes
.После удаления Max lifes :5
и некоторых строк, где повторяется episode
, в результате я получаю два разных графика, по одному для каждого файла.Однако цель состоит в том, чтобы построить их вместе на одном рисунке, чтобы показать разницу между двумя rewards
файлами и episodes
.Может ли кто-нибудь помочь, пожалуйста?
Это мой код:
import matplotlib.pyplot as plt
import glob
# Read any .txt output file
path = '/home/plots/*.txt'
files = glob.glob(path)
for name in files:
# Read lines from file
with open(name) as f:
lines = f.readlines()
# Extract episode/reward data points
episodes = []
rewards = []
for line in lines:
columns = line.split()
if not columns[0].startswith("episode"):
# Not a line with episode/reward data
continue
try:
episode = int(columns[0].split(":")[1])
reward = float(columns[7].split(":")[1])
except:
# Not a number
continue
if episode in episodes:
# We don't want repeated episodes
continue
episodes.append(episode)
rewards.append(reward)
print(episodes,rewards)
#plot both in the same figure
#plt.plot(episodes, rewards, episodes, rewards)
#plt.show()
# Plot data every 1000 steps
N = 1000
for i in range(int(len(l_episodes)/N)+1):
plt.plot(l_episodes[i*N:i*N+N], l_rewards[i*N:i*N+N])
plt.xlabel('episodes', fontsize=12)
plt.ylabel('rewards', fontsize=12)
plt.savefig("plot{}.png".format(i))
plt.close()
Выходное значение
