【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧

news2024/11/19 1:30:09

一、问题提出

我有这样一串代码:

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表示垂直位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

KMP算法原理原来这么简单

我觉得这句话说的很好: kmp算法关键在于:在当前对文本串和模式串检索的过程中,若出现了不匹配,如何充分利用已经匹配的部分,来继续接下来的检索。 暴力解决字符串匹配 暴力解法就是两层for循环,每次都一对一的匹配&…

面试官:“请描述一下Android系统的启动流程”

作者:OpenGL 前言 什么是Android启动流程呢?其实指的就是我们Android系统从按下电源到显示界面的整个过程。 当我们把手机充好电,按下电源,手机会弹出相应启动界面,在等了一段时间之后,会弹出我们熟悉的主…

AI数据标注工程师这个职业怎么样?

本篇文章主要讲解ai数据标注工程师这个职业的具体情况和相关的职业前景 作者:任聪聪 日期:2023年4月18日 数据是ai的灵魂,自然界中相对应的数据都活多少存在不准确、杂乱、无效等属性,需要人为进行收集、整理、分类和处理。其中ai…

Linux 内核原理摘录

文章目录 一、Linux 内核设计与实现1、进程管理(1)调度2、内核数据结构(1)kfifo 3、中断 一、Linux 内核设计与实现 本章主要用来摘录《Linux 内核设计与实现》一书中学习知识点,其基于 Linux 2.6.34 。 1、进程管理 …

PowerShell install go+caddy+filebrowser+nssm 实现部署文件系统

filebrowser filebrowser 是一个使用go语言编写的软件,功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件,或者是添加删除文件,甚至可以分享文件,是一个很棒的文件管理器,你甚至可以当成一个网盘来使用。…

找高清视频素材,就上这6个网站。

推荐6个高清视频素材库,免费下载,建议收藏~ 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有上千个,全部都很高清,站内可以按标签分类查找…

某医院访问医保系统慢流量分析案例

背景 我们已将NetInside流量分析系统部署到某市人民医院的机房内,使用流量分析系统提供实时和历史原始流量。本次分析重点针对访问外网医保系统性能进行分析,以供安全取证、性能分析、网络质量监测以及深层网络分析。 分析时间 报告分析时间范围为&am…

【Linux】进程间通讯

前提知识 进程间具有独立性 ,现在我们要打破独立性,去通讯,所以 通讯的成本一定很高。 又时候又需要多进程协同完成某种业务内容 ,例如以前: cat file | grep “hello",这就是两个进程之间的通讯。 通讯的本质就是…

【一文学会MQTT协议和mosquitto】

一文学会MQTT协议和mosquitto 一.、MQTT的基本概念二、mosquittomosquitto基本概念常用API 三、MQTT测试EMQX 一.、MQTT的基本概念 MQTT是一种基于发布/订阅模式的协议,其中发布者发布消息,订阅者订阅感兴趣的主题(topic)&#x…

QGIS--开发OpenSCENARIO动态场景(二)--安装插件

1.下载并安装ad_map(无需构建): 1)ad_map插件: https://github.com/carla-simulator/map/releases 下载第一个:ad_map_access_qgis.zip 2)导入插件: 从MenuBar的Plugins >…

YOLOv8 更换主干网络之 FasterNet

论文地址:https://export.arxiv.org/pdf/2303.03667v1.pdf 为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。并且,如此低的FLOPS主要…

ThreadLocal InheritableThreadLocal TransmittableThreadLocal的使用以及原理

ThreadLocal 每个线程向ThreadLocal设置值&#xff0c;再取值&#xff0c;实现线程之间的隔离 public class ThreadLocalCase1 {private static ThreadLocal<Integer> threadLocal new ThreadLocal<>();public static void main(String[] args) {Random random …

Postman接口与压力测试实例

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。 1、环境变量和全局变量设置 环境变量可以使用在以下地方&#xff1a; URLURL paramsHeader valuesform-data/url-encoded valuesRaw body contentHelper f…

MySQL学习笔记第一天

第02章 MySQL环境搭建 1.MySQL的卸载 步骤1&#xff1a;停止MySQL服务 在卸载之前&#xff0c;先停止MySQL8.0的服务。按键盘上的“Ctrl Alt Delete”组合键&#xff0c;打开“任务管理器”对话框&#xff0c;可以在“服务”列表找到“MySQL8.0”的服务&#xff0c;如果现…

AIGC: Midjourney和Stable Diffusion在大厂中的应用

AIGC: Midjourney和Stable Diffusion在大厂中的应用和教程​http://www.webhub123.com/#/home/detail?projectHashid51631966&ownerUserid21336964 收录效果如下 登录后即可一键拥挤收藏以下所有文章网址到我的收藏夹&#xff0c;网站帮你简单高效地管理你的网络收藏&…

Memtiter-benchmark源码解析4memtier_benchmark.cpp源代码解读

run_benchmark 程序入口 First , create the cg_thread instances in the vector threads and then call each cg_thread’s prepare() function of them. Subsequently, launch each thread in the vector threads cg_thread m_base event_base_new() // line 528 一个cli…

移动端手机网页适配iPad与折叠屏设备

采用的网页适配方案&#xff1a;移动端页面px布局适配方案&#xff08;viewport&#xff09; 产生此问题的原因 由于手机与平板等设备宽高比差异导致页面展示不全或者功能按钮展示在视口之外点击不到。 简单来说就是我们的页面都是瘦长(即高大于宽)的&#xff0c;而折叠屏等设…

【计算机专业应届生先找培训还是先找个工作过渡一下?】

计算机专业应届生先找培训还是先找个工作过渡一下&#xff1f; 计算机应届生是先培训还是先工作&#xff0c;这个问题应该困扰了很多专业技能一般的同学&#xff0c;尤其是学历方面还没有优势的普通本专科院校。都说技术与学历优秀的人进大厂&#xff0c;技术一般学历优秀的人能…

@ComponentScan自动扫描组件并指定扫描规则

1.使用注解配置包扫描 1.1.创建相关类 分别创建BookDao、BookService、BookServiceImpl以及BookController这三个类&#xff0c;并在这三个类中分别添加Repository、Service、Controller注解 BookDaopackage com.tianxia.springannotation.dao;import org.springframework.s…

【社区图书馆】如何唤醒数学脑

如何唤醒数学脑 内容简介 每个人天生都有数学力&#xff0c;有着内建的“数学式思维模式”&#xff0c;若能有效发挥&#xff0c;就能在学校、职场、人际关系中表现出来&#xff0c;从容不迫地获得更好的效率及成就感。 但这种思维模式会受到周围情境、心理状态等因素的影响&…