Files
easy-rl/codes/common/plot.py
johnjim0816 442e307b01 update codes
2021-11-17 14:36:51 +08:00

68 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python
# coding=utf-8
'''
Author: John
Email: johnjim0816@gmail.com
Date: 2020-10-07 20:57:11
LastEditor: John
LastEditTime: 2021-09-23 12:23:01
Discription:
Environment:
'''
import matplotlib.pyplot as plt
import seaborn as sns
# from matplotlib.font_manager import FontProperties # 导入字体模块
# def chinese_font():
# ''' 设置中文字体
# '''
# return FontProperties(fname='/System/Library/Fonts/STHeiti Light.ttc',size=15) # fname系统字体路径此处是mac的
# def plot_rewards_cn(rewards,ma_rewards,tag="train",env='CartPole-v0',algo = "DQN",save=True,path='./'):
# ''' 中文画图
# '''
# sns.set()
# plt.figure()
# plt.title(u"{}环境下{}算法的学习曲线".format(env,algo),fontproperties=chinese_font())
# plt.xlabel(u'回合数',fontproperties=chinese_font())
# plt.plot(rewards)
# plt.plot(ma_rewards)
# plt.legend((u'奖励',u'滑动平均奖励',),loc="best",prop=chinese_font())
# if save:
# plt.savefig(path+f"{tag}_rewards_curve_cn")
# # plt.show()
def plot_rewards(rewards,ma_rewards,plot_cfg,tag='train'):
sns.set()
plt.figure() # 创建一个图形实例,方便同时多画几个图
plt.title("learning curve on {} of {} for {}".format(plot_cfg.device, plot_cfg.algo, plot_cfg.env))
plt.xlabel('epsiodes')
plt.plot(rewards,label='rewards')
plt.plot(ma_rewards,label='ma rewards')
plt.legend()
if plot_cfg.save:
plt.savefig(plot_cfg.result_path+"{}_rewards_curve".format(tag))
plt.show()
# def plot_rewards(rewards,ma_rewards,tag="train",env='CartPole-v0',algo = "DQN",save=True,path='./'):
# sns.set()
# plt.figure() # 创建一个图形实例,方便同时多画几个图
# plt.title("average learning curve of {} for {}".format(algo,env))
# plt.xlabel('epsiodes')
# plt.plot(rewards,label='rewards')
# plt.plot(ma_rewards,label='ma rewards')
# plt.legend()
# if save:
# plt.savefig(path+"{}_rewards_curve".format(tag))
# plt.show()
def plot_losses(losses,algo = "DQN",save=True,path='./'):
sns.set()
plt.figure()
plt.title("loss curve of {}".format(algo))
plt.xlabel('epsiodes')
plt.plot(losses,label='rewards')
plt.legend()
if save:
plt.savefig(path+"losses_curve")
plt.show()