首页 > 编程语言 >python · matplotlib | seaborn 画图与调整图例位置

python · matplotlib | seaborn 画图与调整图例位置

时间:2024-02-20 11:47:13浏览次数:21  
标签:plt seaborn python finetune label Step 图例 base data


1 seaborn 画图代码存档:

sns.set_style("whitegrid") # 好看的 style
plt.figure()
# plt.plot(ppo_data['Step'] * step_mul, ppo_data['ppo_mean'], label='PPO')
# plt.plot(sac_data['Step'] * step_mul, sac_data['sac_mean'], label='SAC (continuous)')
# plt.plot(base_data['Step'] * step_mul, base_data['group_sac_mean'] * 6, label='Base Policy')
# plt.plot((finetune_data['Step'] + 2000) * step_mul, finetune_data['finetune_sac_mean'] * 6, label='Fine-tuned Policy')
sns.lineplot(data=ppo_new, x='Step', y='ppo_mean', label='PPO') # 画出带阴影的 fancy RL curve
sns.lineplot(data=sac_new, x='Step', y='sac_mean', label='SAC (continuous)')
sns.lineplot(data=base_new, x='Step', y='group_sac_mean', label='Base Policy')
sns.lineplot(data=finetune_new, x='Step', y='finetune_sac_mean', label='Fine-tuned Policy')
plt.xlabel('Step')
plt.ylabel('Reward')
plt.legend()
plt.show()

2 调整 matplotlib 的图例位置(图外 正下方 2×2 平铺):

# 画图
sns.set_style("whitegrid")
plt.figure()
# base policy 的 rack out 采用红色虚线
plt.plot(base_data['step'], base_data['rack_out'], color='indianred', ls='-.', label='Rack Outlet Temperature \nof Base Policy')
# base policy 的 setpoint 采用红色实线
plt.plot(base_data['step'], base_data['setpoint'], color='brown', label='ACU Setpoints \nof Base Policy')
# fine-tuned policy 的 rack out 采用蓝色虚线
plt.plot(finetune_data['step'], finetune_data['rack_out'], color='skyblue', ls='-.', label='Rack Outlet Temperature \nof Fine-tuned Policy')
# fine-tuned policy 的 setpoint 采用蓝色实线
plt.plot(finetune_data['step'], finetune_data['setpoint'], color='tab:blue', label='ACU Setpoints \nof Fine-tuned Policy')
plt.xlabel('Step')
plt.ylabel('Temperature (°C)')
plt.legend(bbox_to_anchor=(0.5,-0.3), loc='center', ncol=2)
plt.tight_layout()
plt.show()

在 plt.legend 中调整图例位置,

  1. 把图例放在图外面(并更改位置(?)):bbox_to_anchor=(0.5,-0.3)
  2. 更改对齐方式:loc='center'
  3. 更改一行放几个图例:ncol=2

然后,调用 plt.tight_layout() ,否则图片显示不完全。



标签:plt,seaborn,python,finetune,label,Step,图例,base,data
From: https://www.cnblogs.com/moonout/p/18022724

相关文章

  • [python] [mongoDB] pymongo -- 用python操作mongodb
    官方文档数据库格式mongodb采用了BSON格式,即database->collection->document,在python中,pymongo使用字典来表示一个documnet;document可以包含python原生的数据类型,比如datetime.datetime连接数据库MongoClient连接mongodb,读取数据库,集合和文档CRUD插入Collect......
  • Python计算两图相似性-哈希算法(Hash)
    1、简介aHash:平均值哈希。速度比较快,但是常常不太精确。pHash:感知哈希。精确度比较高,但是速度方面较差一些。dHash:差异值哈希。精确度较高,均值哈希算法、差值哈希算法和感知哈希算法都是值越小,相似度越高,取值为0-64,即汉明距离中,64位的hash值有多少不同。三直方图和单通道直方图......
  • PC应用程序自动化(python)
    个人向笔记。看的是BV14Y4y1z7z6这个视频。假期感兴趣看了一点点,感觉和我的日常工作匹配度不太高,所以先记录到这里,后面再补充。 PC自动化--pywinauto0、前置0.1是个后端的访问。application:作用范围是一个进程; desktop:作用范围可以跨进程。 0.2程序检测辅助工具 ......
  • python调用qq邮箱发送邮件
    代码如下,需要qq邮箱开启授权码importsmtplibfromemail.mime.textimportMIMETextfromemail.headerimportHeadermessage=MIMEText('邮件内容')#邮件内容message['From']=Header('[email protected]')#邮件发送者名字message['To']=Header(&#......
  • Ubuntu 安装 Python3.6.7
    注意:不要卸载ubuntu自带的python版本;ubuntu下不同版本的python可以共存,可直接安装python3.6。1.升级包索引和软件sudoaptupdatesudoaptupgrade-y2.安装编译所需包sudoaptinstallbuild-essentialzlib1g-devlibbz2-devlibncurses5-devlibgdbm-devlibns......
  • python的类机制
    python的类机制参考:python面向对象概念方法重写/覆盖:若从父类继承的方法不能满足子类的需求,可以对其进行改写。类变量:在实例化对象中是公用的,定义在类中,且在函数体之外,通常不作为实体变量使用。局部变量:定义在方法中的变量,只作用在当前实例。实例变量:在类的声明中,属性是......
  • Python asyncio
    asyncio作用提供了对携程的支持非阻塞:协程允许在等待异步操作的同时执行其他任务,而不会阻塞整个程序。轻量:相对于线程和进程,协程的开销较小,因为它们在单线程中执行。使用async/await语法:asyncdef声明协程函数,await用于等待异步操作的完成。事件循环:协程需要在事件循环......
  • Python生成词云--豆瓣电影短评(初学菜鸡版)
    Python生成词云--豆瓣电影短评(初学菜鸡版)目录Python生成词云--豆瓣电影短评(初学菜鸡版)1.主要涉及的库2.获取数据3.生成词云图1.主要涉及的库主要页面处理selenium数据处理,输出、读取CSVpandas、numpy对所有数据进行分词处理jieba处理图片,生成词云图word......
  • Python异步编程原理篇之IO多路复用模块selector
    selector简介selector是一个实现了IO复用模型的python包,实现了IO多路复用模型的select、poll和epoll等函数。它允许程序同时监听多个文件描述符(例如套接字),并在其中任何一个就绪时进行相应的操作。这样可以有效地管理并发I/O操作,提高程序的性能和资源利用率。本篇主要......
  • Python Paramiko模块-exec_command() 和 invoke_shell() 两种操作方式
    前言Paramiko是Python语言的一个SSH客户端。可以远程连接Linux服务器,通过python对Linux进行操作,可以实现进行对远程服务器进行下载和上传文件操作。exec_command()操作importparamikossh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAd......