机器学习常用包matplotlib篇(四)绘图规范

 前言

为了让 Matplotlib 绘图代码更规范、易读,且为后期图形完善预留空间,建议遵循一些规范绘图方法。😉


1.管理图形对象

建议使用 plt.figure() 或者 plt.subplots() 管理完整的图形对象,而非直接用 plt.plot(...) 绘图。这样能为添加图例、样式、标注等预留空间,使代码更规范、可读性更强。


2.添加图标题、图例

fig, axes = plt.subplots()
axes.set_xlabel('x label')  # 横轴名称
axes.set_ylabel('y label')
axes.set_title('title')  # 图形名称
axes.plot(x, x**2)
axes.plot(x, x**3)
axes.legend(["y = x**2", "y = x**3"], loc=0)  # 图例
  • set_xlabel() 和 set_ylabel() 分别设置横轴和纵轴的名称。
  • set_title() 设置图形的标题。
  • legend() 用于添加图例,loc 参数标记图例位置:1 代表右上角、2 代表左上角、3 代表左下角、4 代表右下角,0 代表自适应。


3.线型、颜色、透明度设置

颜色与透明度
fig, axes = plt.subplots()
axes.plot(x, x+1, color="red", alpha=0.5)
axes.plot(x, x+2, color="#1155dd")
axes.plot(x, x+3, color="#15cc55")
  • color 参数可使用颜色名称(如 "red")或十六进制颜色码(如 "#1155dd")设置线的颜色。
  • alpha 参数设置线的透明度,取值范围为 [0, 1]

线型与线宽
fig, ax = plt.subplots(figsize=(12, 6))
# 线宽
ax.plot(x, x+1, color="blue", linewidth=0.25)
# 虚线类型
ax.plot(x, x+5, color="red", lw=2, linestyle='-')
# 虚线交错宽度
line, = ax.plot(x, x+8, color="black", lw=1.50)
line.set_dashes([5, 10, 15, 10])
  • linewidth(可缩写为 lw)设置线的宽度。
  • linestyle(可缩写为 ls)设置线型,如 '-' 表示实线,'-.' 表示点划线,':' 表示虚线。
  • set_dashes() 方法可自定义虚线的交错宽度。

符号设置
fig, ax = plt.subplots(figsize=(12, 6))
ax.plot(x, x + 9, color="green", lw=2, ls='--', marker='+')
# 符号大小和颜色
ax.plot(x, x+15, color="purple", lw=1, ls='-',marker='o', markersize=8, markerfacecolor="red")
  • marker 参数设置标记符号,如 '+''o''s' 等。
  • markersize 设置标记符号的大小。
  • markerfacecolor 设置标记符号内部的颜色。
  • markeredgewidth 设置标记符号边缘的宽度。
  • markeredgecolor 设置标记符号边缘的颜色。


4.画布网格、坐标轴范围设置

fig, axes = plt.subplots(1, 2, figsize=(10, 5))
# 显示网格
axes[0].plot(x, x**2, x, x**3, lw=2)
axes[0].grid(True)
# 设置坐标轴范围
axes[1].plot(x, x**2, x, x**3)
axes[1].set_ylim([0, 60])
axes[1].set_xlim([2, 5])
  • grid(True) 显示画布网格。
  • set_ylim() 和 set_xlim() 分别设置纵轴和横轴的范围。


5.绘制不同类型子图

n = np.array([0, 1, 2, 3, 4, 5])
fig, axes = plt.subplots(1, 4, figsize=(16, 5))
axes[0].scatter(x, x + 0.25*np.random.randn(len(x)))
axes[0].set_title("scatter")
axes[1].step(n, n**2, lw=2)
axes[1].set_title("step")
axes[2].bar(n, n**2, align="center", width=0.5, alpha=0.5)
axes[2].set_title("bar")
axes[3].fill_between(x, x**2, x**3, color="green", alpha=0.5)
axes[3].set_title("fill_between")
  • scatter() 绘制散点图。
  • step() 绘制梯步图。
  • bar() 绘制条形图,align 参数设置条形的对齐方式,width 设置条形的宽度。
  • fill_between() 绘制面积图,填充两条曲线之间的区域。

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

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

相关文章

LVGL4种输入设备详解(触摸、键盘、实体按键、编码器)

lvgl有触摸、键盘、实体按键、编码器四种输入设备 先来分析一下这四种输入设备有什么区别 (1)LV_INDEV_TYPE_POINTER 主要用于触摸屏 用到哪个输入设备保留哪个其他的也是,保留触摸屏输入的任务注册,其它几种种输入任务的注册&…

5G技术解析:从核心概念到关键技术

1. 引言 5G技术的迅猛发展正在重塑我们的生活方式和社会结构。它不仅仅是新一代的移动通信技术,更是一场深刻的技术革命。5G网络正在以其惊人的高速、低延迟和大带宽能力,为智能家居、自动驾驶、工业自动化、远程医疗等另一带来前所未有的可能性。 本文…

背包问题1

核心: // f[i][j] 表示只看前i个物品,总体积是j的情况下,总价值是多少 //res maxx(f[n][]0-v] //f[i][j]: //1 不选第i个物品 f[i][j] f[i-1][j] //2 选第i个物品 f[i][j] f[i-1][j-v[i]] w[i]

Redis | 十大数据类型

文章目录 十大数据类型概述key操作命令数据类型命令及落地运用redis字符串(String)redis列表(List)redis哈希表(Hash)redis集合(Set)redis有序集合(ZSet / SortedSet&…

AI-学习路线图-PyTorch-我是土堆

1 需求 PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili PyTorch 深度学习快速入门教程 配套资源 链接 视频教程 https://www.bilibili.com/video/BV1hE411t7RN/ 文字教程 https://blog.csdn.net/xiaotudui…

DeepSeek图解10页PDF

以前一直在关注国内外的一些AI工具,包括文本型、图像类的一些AI实践,最近DeepSeek突然爆火,从互联网收集一些资料与大家一起分享学习。 本章节分享的文件为网上流传的DeepSeek图解10页PDF,免费附件链接给出。 1 本地 1 本地部…

C# OpenCvSharp 部署MOWA:多合一图像扭曲模型

目录 说明 效果 项目 代码 下载 参考 C# OpenCvSharp 部署MOWA:多合一图像扭曲模型 说明 算法模型的paper名称是《MOWA: Multiple-in-One Image Warping Model》 ariv链接 https://arxiv.org/pdf/2404.10716 效果 Stitched Image 翻译成中文意思是&…

vite+vue3搭建前端项目并使用 Bulma 框架

vitevue3搭建前端项目并使用 Bulma 框架 bluma css框架参照。 https://bulma.org.cn/documentation/start/overview/ 1. 创建项目 npm init vitelatest ai-imageneration --template vue选择 vue 和 typescript 作为模板: 2. 安装依赖 npm install npm install…

Spring 6.2.2 @scope(“prototype“)原理

Spring Prototype 原理? 前置准备 创建一个MyService类 Scope("prototype") Service("myService") public class MyService {public String getMessage() {return "Hello, World!";} }创建一个main类,用于debug。 pr…

Android车机DIY开发之软件篇(十) NXP MfgTool和UUU的使用

标题Android车机DIY开发之软件篇(十) NXP MfgTool和UUU的使用 一、MfgTool工具 1.基本原理 1、先向DDR下载一个linux系统2. 通过linux完成烧写files里面保存的是最终保存到开发板中的uboot.imx zimage dtb rootfsvbs是在打开mfgtool2和很多参数ucl2.xml表示文件选择 定义自…

RabbitMQ 可靠性投递

文章目录 前言一、RabbitMQ自带机制1、生产者发送消息注意1.1、事务(Transactions)1.2、发布确认(Publisher Confirms)1.2.1、同步1.2.2、异步 2、消息路由机制2.1、使用备份交换机(Alternate Exchanges)2.…

番外02:前端八股文面试题-CSS篇

一:CSS基础 1:CSS选择器及其优先级 2:display的属性值及其作用 属性值作用none元素不显示,并且会从文档流中移除block块类型,默认元素为父元素宽度,可设置宽高,换行显示inline行内元素类型&a…

如何在C++ QT 程序中集成cef3开源浏览器组件去显示网页?

文章目录 1. **准备工作**1.1 下载CEF31.2 配置Qt项目 2. **集成CEF3到Qt窗口**2.1 创建Qt窗口容器2.2 初始化CEF3 3. **处理CEF3消息循环**4. **处理多进程架构**5. **完整代码示例**main.cpp 6. **常见问题**6.1 黑屏问题6.2 窗口嵌入失败6.3 多进程调试 7.**Github源码参考*…

【实用技能】如何借助3D文档控件Aspose.3D, 在Java中无缝制作 3D 球体

概述 创建 3D 球体是 3D 图形设计的一个基本方面。无论您是在开发游戏、模拟还是可视化,无缝创建 3D 球体模型的能力都至关重要。Aspose.3D通过提供强大的 3D 图形 SDK 在各个行业中发挥着重要作用。它允许开发人员轻松创建、操作和转换 3D 模型。此 SDK 对于希望将…

【Leetcode 热题 100】169. 多数元素

问题背景 给定一个大小为 n n n 的数组 n u m s nums nums,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n / 2 ⌋ \lfloor n/2 \rfloor ⌊n/2⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 数据约束 n n u…

Docker build时apt update失败

配置好dockerfile后,编译镜像docker build -t my-debian .报错: E: Release file for http://mirrors.org/debian/dists/bookworm-updates/InRelease is not valid yet (invalid for another 3h 15min 21s). Updates for this repository will not be a…

MySql数据库SQL编写规范注意事项

MySQL数据库SQL编写规范对于提高代码可读性、增强代码维护性、优化查询性能、减少错误发生、促进标准化和团队协作以及提升开发效率等方面都具有重要意义。因此,在开发过程中应严格遵守SQL编写规范,以确保代码的质量和效率。 以下是 MySQL 数据库 SQL 编…

Jenkins 使用教程:从入门到精通

在软件开发的复杂流程中,持续集成与持续交付(CI/CD)是提升开发效率和保障软件质量的核心实践。Jenkins 作为一款备受欢迎的开源自动化服务器,在 CI/CD 流程中发挥着举足轻重的作用。本文将深入、详细地介绍 Jenkins 的使用方法&am…

通过k8s请求selfsubjectrulesreviews查询权限

当前是通过kubelet进行查询 curl --cacert /etc/kubernetes/pki/ca.crt \ --cert /var/lib/kubelet/pki/kubelet-client-current.pem \ --key /var/lib/kubelet/pki/kubelet-client-current.pem \ -d - \ -H "Content-Type: application/json" \ -H Accept: applicat…

C语言基础系列【3】VSCode使用

前面我们提到过VSCode有多么的好用,本文主要介绍如何使用VSCode编译运行C语言代码。 安装 首先去官网(https://code.visualstudio.com/)下载安装包,点击Download for Windows 获取安装包后,一路点击Next就可以。 配…