【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧
一、问题提出
我有这样一串代码:
import matplotlib.pyplot as plt
plt.figure(figsize = (10, 6))
"
此处省略代码
"
legend.append("J")
plt.legend(legend)
plt.xlabel('recall')
plt.ylabel('precision')
plt.grid()
plt.show()
我们得到的图像为:

二、尝试美化
2.1 改变legend的位置
plt.legend(loc='lower right', fontsize=12, frameon=True, fancybox=True, framealpha=0.2, borderpad=0.3,ncol=1, markerfirst=True, markerscale=1, numpoints=1, handlelength=3.5)
loc:图例位置,可取(‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center , right’, ‘lower center’, ‘upper center’, ‘center’) ;若是使用了bbox_to_anchor,则这项就无效了;
fontsize:int或float或{‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’},字体大小;
frameon:是否显示图例边框;
ncol: 图例的列的数量,默认为1;
title: 为图例添加标题;
shadow: 是否为图例边框添加阴影;
markerfirst: True表示图例标签在句柄右侧,false反之;
markerscale: 图例标记为原图标记中的多少倍大小;
numpoints: 表示图例中的句柄上的标记点的个数,一般设为1;
fancybox: 是否将图例框的边角设为圆形;
framealpha: 控制图例框的透明度;
borderpad: 图例框内边距;
labelspacing: 图例中条目之间的距离;
handlelength: 图例句柄的长度;
bbox_to_anchor: (横向看右,纵向看下),如果要自定义图例位置或者将图例画在坐标外边,用它,比如bbox_to_anchor=(1.4, 0.8),这个一般配合着ax.get_position(),set_position([box.x0, box.y0, box.width*0.8 , box.height])使用;
用不到的参数可以直接去掉,有的参数没写进去,用得到的话加进去 , bbox_to_anchor=(1.11, 0)
例如,我这里只改loc参数:
plt.legend(legend, loc = 'lower right')

2.2 matplotlib设置图片边缘距离
import matplotlib.pyplot as plt
plt.figure(figsize = (10, 6))
plt.subplots_adjust(left = 0.1, right = 0.7, top = 0.9, bottom = 0.1)
legend = []
我们得到的结果如下图所示:

可以很明显的看到,右边有很大的空白出来!
2.3 plt.lengend图例放在图像的外侧
num1 = 1.121
num2 = 1.0
num3 = 0
num4 = 0.1
plt.legend(legend, bbox_to_anchor = (num1, num2), loc = num3, borderaxespad = num4)
plt.xlabel('recall')
plt.ylabel('precision')
plt.grid()
plt.show()

最后大家再继续微调即可!
说明:bbox_to_anchor被赋予的二元组中,num1用于控制legend的左右移动,值越大越向右边移动,num2用于控制legend的上下移动,值越大,越向上移动。用于微调图例的位置。
num1表示水平位置,num2表示垂直位置。
相关文章:
【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧
一、问题提出 我有这样一串代码: import matplotlib.pyplot as plt plt.figure(figsize (10, 6)) " 此处省略代码 " legend.append("J") plt.legend(legend) plt.xlabel(recall) plt.ylabel(precision) plt.grid() plt.show()我们得到的图像…...
oracle 11g等保加固
有个单机环境需要做个等保加固 1、执行如下sql ?/rdbms/admin/utlpwdmg.sql --alter profile default limit password_verify_function null; Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90; alter profile DEFAULT limit password_lock_time 30; alter profile DEFAU…...
【设计模式】设计模式之解释器模式
文章目录 前言一、解释器模式二、最佳实践总结 前言 本节给大家讲一下设计模式中的解释器模式,并结合实际业务场景给大家讲解如何使用~ 所有案例代码主要以Java语言为主, 好了, 废话不多说直接开整~ 一、解释器模式 解释器模式(Interpreter Pattern)…...
leetcode551. 学生出勤记录 I
题目描述解题思路执行结果 leetcode551. 学生出勤记录 I . 题目描述 给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符: A:Absentÿ…...
flume拦截器介绍
Flume是一个开源的、分布式的、可靠的、高效的海量数据采集、聚合和传输系统。其中,拦截器(Interceptor)是Flume中的一种组件,可以在数据(Event)流动的各个阶段对数据进行处理、过滤或转换,从而实现更为灵活、高效的数据采集和传输。 1、拦截…...
5.4、服务器编程基本框架和两种高效的事件处理模式
5.4、服务器编程基本框架和两种高效的事件处理模式 1.服务器编程基本框架2.两种高效的事件处理模式①Reactor模式②Proactor模式③模拟Proactor模式 1.服务器编程基本框架 模块功能I/O 处理单元处理客户连接,读写网络数据逻辑单元业务进程或线程网络存储单元数据库、…...
Flink主要有两种基础类型的状态:operator state。
Flink主要有两种基础类型的状态:keyed state 和operator state。 Operator State 对于Operator State(或者non-keyed state),每个operator state绑定到一个并行operator实例上。在Flink中,Kafka Connector是一个使用Operator State的很好的例…...
【vue2】使用vue-admin-template动态添加路由的思路/addRoutes的使用
😉博主:初映CY的前说(前端领域) ,📒本文核心:用原生js实现省市区联动 【前言】在通用的后台管理项目的开发中,不仅仅是会涉及到对表单数据等的增删改查操作还会涉及到一些关于权限管理的问题。我们将基于一个RBAC的思维…...
Python语言中的注释方法应用
Python语言中的注释方法 在Python编程中,与其他编程语言一样,有良好的注释部分,会让你的程序在后续的改进或优化中,变得便利。同时,给自己培养了良好的编程习惯。 在Python语言中,有两种注释方法。 1.单行…...
Google浏览器翻译无法正常使用解决
1.查找可用服务器地址 按WinR键打开运行→输入cmd回车,打开命令提示符→输入ping google.cn 回车。记录一下下图红框里的ip地址,一会要用到 最近自己ping出来的ip可能不能用了,可以尝试用下面的ip 142.251.163.90 142.250.113.90 142.251.…...
ETCD(三)操作指令
1. put put #将给定的key写入到存储 --ignore-lease[false] #使用当前租约更新key --ignore-value[false] #使用当前值更新key --lease"0" # 要附加到key的租约ID(十六进制) --prev-kv[false] # 返回修改前的上一个键值对2. get get #获取给…...
小白学Pytorch系列--Torch.optim API Base class(1)
小白学Pytorch系列–Torch.optim API Base class(1) torch.optim是一个实现各种优化算法的包。大多数常用的方法都已得到支持,而且接口足够通用,因此将来还可以轻松集成更复杂的方法。 如何使用优化器 使用手torch.optim您必须构造一个优化器对象&…...
flac格式如何转mp3,3招帮你搞定
flac格式如何转mp3,3招帮你搞定的方法来啦。当你的音频是flac格式是不是很头疼,又不知道怎么转mp3 。然后网上搜索出很多方法又不知道从哪个下手,是不是很疑惑?那今天就来看看小编推荐的方法吧,一定让你眼前一亮&#…...
Redis入门到入土(day01)
NoSQL概述 为什么用NoSQL 1、单机MySQL的美好年代 在90年代,一个网站的访问量一般不大,用单个数据库完全可以轻松应付! 在那个时候,更多的都是静态网页,动态交互类型的网站不多。 上述架构下,我们来看看…...
JVM垃圾回收GC 详解(java1.8)
目录 垃圾判断算法(你是不是垃圾?) 引用计数法 可达性算法 对象的引用 强引用 软引用 弱引用 虚引用 对象的自我救赎 垃圾回收算法--分代 标记清除算法 复制算法 标记整理法 垃圾处理器 垃圾判断算法(你是不是垃圾&…...
Mybatis-Plus -03 Mybatis-Plus实现CRUD
Mybatis-Plus实现CRUD 1 Insert增加2 ID生成策略3 Delete删除4 逻辑删除5 Update修改6 Select查询 Mybatis-Plus实现CRUD 通用 CRUD 封装**BaseMapper (opens new window)**接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器参数 …...
综合能源系统中基于电转气和碳捕集系统的热电联产建模与优化研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
“智慧赋能 强链塑链”|工程物资供应链管理中的数字化应用
工程项目中的供应链管理至关重要 工程建设行业是国民经济的重要支柱之一,虽然在总产值上持续保持增长态势,但近年来行业的利润总额增速已连续多年呈现下降趋势。究其原因,可以大体从两个方面来看:一是行业盈利能力出现下降&#x…...
通过docker发布项目
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言例如:docker项目的发布方式 [docker发布的参考链接](https://www.cnblogs.com/emperorking/articles/11244253.html) 一、docker是什么?…...
为什么Spring和IDEA不推荐使用@Autowired注解?
在Spring开发中,Autowired注解是一个常用的依赖注入方式。但是,你可能会惊奇地发现,Spring和IDEA都不推荐使用Autowired注解。关于这个问题,其实答案相对统一,实际上用大白话说起来也容易理解。 官方答案 首先&#…...
UE5 Paper2D地形材质系统核心解析:坡度混合与Slope LUT实现
1. 这不是普通材质文件——PaperTerrainMaterial.cpp是UE5中2D地形系统的“神经中枢”你打开UE5的源码目录,翻到Engine/Source/Runtime/Paper2D/Private/Terrain/路径下,一眼就能看到PaperTerrainMaterial.cpp。它不像PaperSprite.cpp那样被教程反复提及…...
量子计算与人工智能融合:技术原理与应用前景
1. 量子计算与人工智能融合的技术全景量子计算与人工智能(AI)的交叉领域正在重塑计算技术的边界。作为一名长期跟踪量子计算发展的技术研究者,我见证了从早期理论构想到如今实验室原型机的演进历程。量子计算利用量子比特的叠加与纠缠特性&am…...
DPO vs PPO:两种AI对齐技术到底选哪个?我全试了一遍
整整一个月的实验,四块4090烧了不知道多少电费。这不算什么,真正让我崩溃的是——跑了三天的PPO训练,在最后一刻因为reward model打分偏差炸了。 那一刻我真的很想摔键盘。 但后来换上DPO重新跑,12小时搞定,效果还更…...
基于Intel MAX 10 FPGA的Z80与8051双核SoC设计与实现
1. 项目概述:当经典CPU遇上现代FPGA最近在整理工作室的旧物,翻出来几块尘封已久的Z80和8051开发板,看着上面密密麻麻的飞线和74系列逻辑芯片,一个念头突然冒了出来:能不能用一块更现代的芯片,把这些经典架构…...
大模型落地最后一公里:测试人员的新机会来了
从“质量守门员”到“AI摆渡人”当所有人都在谈论大模型如何颠覆开发模式时,一个隐秘而深刻的变革正在我们测试领域悄然发生。随着2026年大模型技术从“玩具”进化到“工具”,再到如今与企业核心业务的深度融合,横亘在理想与现实之间的“最后…...
AI Agent落地10大避坑指南:从白皮书到生产环境的工程真相
1. 这不是技术文档翻译,而是一次“工程师对产品经理”的现场拆解 你点开这篇标题,大概率是因为刚看到Google那篇《AI Agents: A Whitepaper on Principles, Capabilities, and Limitations》——PDF文件名长得像法律条文,开头三段全是“auton…...
Unity WebGL底层原理与实战避坑指南
1. 这不是“把游戏搬上网页”那么简单:一场对Unity WebGL底层逻辑的硬核拆解 “疯狂特技赛车2”这个名字,对很多老玩家而言,是童年街机厅里手心冒汗、摇杆发烫的记忆。而当我在GitHub上第一次点开它被公开的Unity源码仓库,看到 B…...
iOS自动化测试真机连接失败的五大根因与工程化解决方案
1. 为什么iOS自动化测试总卡在“连不上真机”这一步? Appium做iOS自动化,标题里写“全网最详细”,不是吹牛,是踩过太多坑之后的实话。我带过三支测试团队,从2018年用Xcode 9配Appium 1.8开始,到今天Xcode 1…...
用 5 款全栈电商微系统打通你的前后端核心逻辑链路(附级联 Prompt)
各位大前端、全栈开发以及正在寻求技术进阶的同仁们,大家好。在日常的技术社区里,我们经常能看到各种流于表面的前端 UI 静态页或者几行代码拼凑的后端 CRUD 示例。但真正能在一个全栈工程师的履历中起到定海神针作用的,往往是那些功能内敛、…...
让Windows 11任务栏唱歌:Taskbar-Lyrics插件如何改变你的音乐体验
让Windows 11任务栏唱歌:Taskbar-Lyrics插件如何改变你的音乐体验 【免费下载链接】Taskbar-Lyrics BetterNCM插件,在任务栏上嵌入歌词,目前仅建议Windows 11 项目地址: https://gitcode.com/gh_mirrors/ta/Taskbar-Lyrics 还在为切换…...
