「解析」Matplotlib 绘制折线图

相比于【优雅】matplotlib 常见图、【优雅】matplotlib 3D图 而言,折线图使用的频率会更高一些,在此整理下最近使用 Matplotlib 绘制折线图常用的一些配置,小伙伴们只需要修改对应的 aug_list、list 即可直接使用

#  !/usr/bin/env  python
#  -*- coding:utf-8 -*-
# @Time     :  2023.04
# @Author   :  绿色羽毛
# @Email    :  lvseyumao@foxmail.com
# @Blog     :  https://blog.csdn.net/ViatorSun
# @arXiv    :  
# @version  :  "1.0"
# @Note     :  
# 
#



import numpy as np
import matplotlib.pyplot as plt



aug_list=[  "Original","GaussianBlur", "AverageBlur", "MedianBlur", "Sharpen", "Dropout","CoarseDropout", 
            "AddToBrightness", "Multiply", "Cutout", "LinearContrast", "WithColorspace", "AddToSaturation",
            "AddToHue", "AddToHueAndSaturation", "AdditiveGaussianNoise",  "DefocusBlur",

            # GPU 1
            "MotionBlur", "CoarseSaltAndPepper","Emboss", "ElasticTransformation", "Superpixels", 
            "Invert", "Grayscale", "EdgeDetect", "PiecewiseAffine", "Snow", "Cartoon", "Affine", 
            "Fliplr", "Flipud", "Resize", "Crop", "CropAndPad", 	]



list = ["| 0    | Original              | 0.917 | 0.797 | 0.864 | 0.64  |",
		"| 1    | GaussianBlur          | 0.793 | 0.536 | 0.615 | 0.425 |",
		"| 2    | AverageBlur           | 0.812 | 0.58  | 0.654 | 0.45  |",
		"| 3    | MedianBlur            | 0.79  | 0.549 | 0.622 | 0.43  |",
		"| 4    | Sharpen               | 0.812 | 0.575 | 0.661 | 0.441 |",
		"| 5    | Dropout               | 0.808 | 0.514 | 0.608 | 0.402 |",
		"| 6    | CoarseDropout         | 0.798 | 0.557 | 0.633 | 0.419 |",
		"| 7    | AddToBrightness       | 0.828 | 0.601 | 0.677 | 0.462 |",
		"| 8    | Multiply              | 0.85  | 0.629 | 0.709 | 0.494 |",
		"| 9    | Cutout                | 0.813 | 0.578 | 0.655 | 0.442 |",
		"| 10   | LinearContrast        | 0.839 | 0.555 | 0.648 | 0.449 |",
		"| 11   | WithColorspace        | 0.937 | 0.774 | 0.85  | 0.633 |",
		"| 12   | AddToSaturation       | 0.875 | 0.647 | 0.733 | 0.505 |",
		"| 13   | AddToHue              | 0.828 | 0.63  | 0.705 | 0.496 |",
		"| 14   | AddToHueAndSaturation | 0.918 | 0.758 | 0.833 | 0.617 |",
		"| 15   | AdditiveGaussianNoise | 0.847 | 0.563 | 0.661 | 0.454 |",
		"| 16   | DefocusBlur           | 0.825 | 0.591 | 0.669 | 0.463 |",
		"| 17   | MotionBlur            | 0.809 | 0.549 | 0.625 | 0.424 |",
		"| 18   | CoarseSaltAndPepper   | 0.778 | 0.558 | 0.627 | 0.436 |",
		"| 19   | Emboss                | 0.826 | 0.604 | 0.67  | 0.464 |",
		"| 20   | ElasticTransformation | 0.806 | 0.565 | 0.632 | 0.431 |",
		"| 21   | Superpixels           | 0.732 | 0.538 | 0.589 | 0.381 |",
		"| 22   | Invert                | 0.886 | 0.703 | 0.784 | 0.563 |",
		"| 23   | Grayscale             | 0.861 | 0.608 | 0.704 | 0.493 |",
		"| 24   | EdgeDetect            | 0.799 | 0.593 | 0.664 | 0.457 |",
		"| 25   | PiecewiseAffine       | 0.806 | 0.549 | 0.626 | 0.409 |",
		"| 26   | Snow                  | 0.853 | 0.506 | 0.609 | 0.415 |",
		"| 27   | Cartoon               | 0.859 | 0.519 | 0.603 | 0.403 |",
		"| 28   | Affine                | 0.797 | 0.6   | 0.669 | 0.421 |",
		"| 29   | Fliplr                | 0.817 | 0.531 | 0.591 | 0.379 |",
		"| 30   | Flipud                | 0.795 | 0.547 | 0.618 | 0.398 |",
		"| 31   | Resize                | 0.799 | 0.582 | 0.66  | 0.437 |",
		"| 32   | Crop                  | 0.789 | 0.559 | 0.627 | 0.406 |",
		"| 33   | CropAndPad            | 0.809 | 0.561 | 0.637 | 0.41  |",
]



excel = []


for i in list:
    lst = i.replace(" ", "").split('|')[-5:-1]	# 正则化处理下每行的数据
    for j in lst:
        excel.append(float(j))

excel = np.array(excel).reshape(-1,4)			# 将列表格式转化为 np.array

p_list = excel[:,0]								# np.array 可以通过 [:,i] 获取第i列数据  

length = excel.size // 4



x = np.linspace(-10, 10, 1000) 

plt.figure(figsize=(32, 10))		# 新建空画布并设置尺寸
plt.plot(aug_list, excel[:,0], ':r'	, label='Predicted')  			# plt.plot绘制折线图
plt.plot(aug_list, excel[:,1], '-r'	, label='Recall')
plt.plot(aug_list, excel[:,2], '--g', label='mAP50')
plt.plot(aug_list, excel[:,3], '-.m', label='mAP50:95')


plt.hlines(excel[0,0], 0, length, colors='r', linestyles=':')		# plt.hlines 绘制 y=k 水平线
plt.hlines(excel[0,1], 0, length, colors='r', linestyles='-')		# plt.vlines 绘制 x=k 垂直线
plt.hlines(excel[0,2], 0, length, colors='g', linestyles='--')
plt.hlines(excel[0,3], 0, length, colors='m', linestyles='-.')


plt.legend()    					# 显示图例(右上角的小图例)


plt.title("Overall indicators")
plt.xlabel('augment list')
plt.xticks(rotation=90)				# 旋转横坐标标签角度

plt.show()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

asp.net mvc学习(三)

Razor语法 Razor语法特点 结构性强,容易阅读。易于学习。不是新的语言。在任何编辑器上编写Razor都很容易。与ide充分结合。 Razor语法主要规则 Razor代码封装于{...}中。 行内表达式(变量和函数)以开头 代码语句以分号结尾 字符串由引号…

Python 进阶指南(编程轻松进阶):八、常见的 Python 陷阱

原文:http://inventwithpython.com/beyond/chapter8.html 虽然 Python 是我最喜欢的编程语言,但它也不是没有缺陷。每种语言都有缺点(有些比其他的多),Python 也不例外。新的 Python 程序员必须学会避免一些常见的“陷…

JavaScript 中问号的三种用法 ??和?.以及?: 您知道吗?

最近看了一些关于JavaScript的测试脚本,觉得JS 中问号的用法还是蛮有意思的,于是做了一下总结,在这里分享给大家!JS中的问号大概有三种用法,分别是:空值合并操作符、可选链操作符和三目运算。 问号问号&…

如何使用手机远程锁定电脑?

​“有时我已经到家了,却忘记锁上我的公司的电脑。每次我都害怕我电脑上的数据丢失。我可以在手机上远程锁定我的Windows计算机以避免这个问题吗?” 答案是肯定的!很多人可能会遇到同样的下班不锁电脑的问题,有的人可能尝…

新规拉开中国生成式AI“百团大战”序幕?

AI将走向何方? ChatGPT在全球范围掀起的AI热潮正在引发越来越多的讨论,AI该如何管理?AI该如何发展?一系列问题都成为人们热议的焦点。此前,马斯克等海外名人就在网络上呼吁OpenAI暂停ChatGPT的模型训练和迭代&#xf…

算法套路八——二叉树深度优先遍历(前、中、后序遍历)

算法套路八——二叉树深度优先遍历(前、中、后序遍历) 算法示例:LeetCode98:验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只…

Shell脚本之免交互

一、Here Document免交互 1、 概念 Here Document使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如 ftp、cat 或 read 命令。 是标准输入的一种替代品可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个"文件…

No.033<软考>《(高项)备考大全》【第17章】战略管理

【第17章】战略管理1 章节相关2 战略管理2.1 组织战略管理2.1 组织战略类型和层次2.1.1 组织事业战略类型2.1.2 组织事业战略类型2.1.3 组织完整的战略包括三个层次2.1.4 组织战略从层次分为组织层战略、事业层战略、职能层战略等2.1.5 平横计分卡2.1.6 项目组合管理3 练习题参…

Leetcode.111 二叉树的最小深度

题目链接 Leetcode.111 二叉树的最小深度 easy 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从 根节点 到 最近叶子节点 的 最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,nul…

车载网络 - Autosar网络管理 - 网络管理简介

一、什么是CAN网络管理及它的作用 现在的车辆是由大量的ECU节点组成的,为了能使各ECU能够正确并及时地进行CAN通信,需要有一套机制来统一协调总线上各节点的休眠唤醒,这套机制就是CAN网络管理(NM)。 网络管理的目的是保…

项目2:后端管理员项目结构初始化

项目2:后端管理员项目结构初始化 1.创建数据库和表 2.初始化父项目 3.初始化项目模块 4.初始化core核心模块(代码生成器) 项目2:后端管理员项目结构初始化 1.创建表 创建数据库 编码使用utf-8 sql语句 /*Navicat Premium …

18_I.MX6ULL_I2C实验

目录 I2C简介 起始位 停止位 数据传输 应答信号 I2C写时序 I2C读时序 I2C多字节读写时序 相关寄存器 AP3216C简介 实验源码 I2C简介 I2C是最常用的通信接口,众多的传感器都会提供I2C接口来和主控相连,比如陀螺仪、加速度计、触摸屏等等。所以I2C是做嵌入式开发必须…

【高项】项目人力资源管理,沟通管理与干系人管理(十大管理)

【高项】项目人力资源管理,沟通管理与干系人管理(十大管理) 文章目录1、人力资源管理1.1 什么是人力资源管理?1.2 如何进行人力资源管理?(过程)1.3 人力资源管理工具1.4 人力资源管理文件2、沟通…

语雀笔记备份导出

参考: https://www.cnblogs.com/ssslinppp/p/17020303.htmlhttps://github.com/yuque/yuque-exporterhttps://zhuanlan.zhihu.com/p/582287220https://www.yuque.com/duzh929/blog/ocffqghttps://www.yuque.com/hijiaobu/datalife/onf6sy#BKajf 现在需要超级管理员,若是没有超级…

【华为机试真题详解JAVA实现】—整数与IP地址间的转换

目录 一、题目描述 二、解题代码 一、题目描述 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数。 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 000…

GDPU C语言 天码行空6

1. 数组顺序查找 ⭐ 语法题 #include<stdio.h>int main() {int n,x,i;int a[102];scanf("%d", &n);for (i 0; i < n; i){scanf("%d", &a[i]);}scanf("%d", &x);int idx -1;//记录x的最大下标int max 0;// 记录大于x的数…

如何写一个优质高效的网络项目实施方案?这篇文章值得收藏!

随着互联网技术的不断发展&#xff0c;网络项目的实施成为了许多企业和组织的重要任务。网络项目实施方案是指在进行网络项目实施时&#xff0c;为了保障项目的顺利进行&#xff0c;达到项目目标和交付要求&#xff0c;所制定的详细计划和操作指南。一个好的网络项目实施方案对…

Unity Game FrameWork—模块使用—对象池分析

官方说明&#xff1a;提供对象缓存池的功能&#xff0c;避免频繁地创建和销毁各种游戏对象&#xff0c;提高游戏性能。除了 Game Framework 自身使用了对象池&#xff0c;用户还可以很方便地创建和管理自己的对象池。 下图是Demo中用到的对象池&#xff0c;所有的实体以及UI都使…

C++11多线程:原子操作std::automic-用于多个线程之间共享的变量。

系列文章目录 文章目录系列文章目录前言一、std::automic二、使用步骤1.代码案例总结前言 原子操作std::automic的基本概念和用法。 一、std::automic std::atomic来代表原子操作&#xff0c;std::automic是个类模板。其实std::atomic这个东西是用来封装某个类型的值的。 1.1…

echarts tooltip文字太长换行

tooltip文字太长换行&#xff0c;设置了宽度也没有换行&#xff0c;加上一句&#xff1a; extraCssText: ‘max-width:300px; white-space:pre-wrap’, 没加之前是这样&#xff1a; 加上之后 extraCssText: ‘max-width:300px; white-space:pre-wrap’, tooltip: {trigger: &…