当前位置: 首页 > news >正文

python 画图例子

目录

  • 多组折线图
  • 点坐标的折线图

多组折线图

数据:

  • 第1行为x轴标签
  • 第2/3/…行等为数据,其中第一列为标签,后面为y值
    在这里插入图片描述

图片:
在这里插入图片描述

代码:

import matplotlib.pyplot as plt# 原始数据字符串
# 第1行为x轴标签
# 第2/3/...行等为数据,其中第一列为标签,后面为y值
data = """
expr_xx	origin	10	20	30	40	50	60	70	80	90	100	110	120
a	0.98105	0.43018	0.5863	0.69702	0.76626	0.81566	0.85283	0.88451	0.90571	0.92265	0.93791	0.9525	0.95883
b	0.98105	0.59431	0.75864	0.83794	0.88888	0.92147	0.94625	0.96207	0.97309	0.98141	0.98676	0.99062	0.99264
c	0.98105	0.60546	0.74805	0.82512	0.8727	0.90399	0.9269	0.945	0.95627	0.97132	0.9747	0.98073	0.98389
d	0.98105	0.72712	0.84623	0.90659	0.93898	0.96003	0.97057	0.98104	0.98659	0.99086	0.99325	0.99443	0.99578
"""# x轴标签
lines = data.strip().split('\n')
header = lines[0].split('\t')   # 第一行是x轴标签
x = list(range(len(header)-1))  # 构建x轴的坐标值,从第二列开始# 获取 y 值
y_values = []
for line in lines[1:]:print(line)y_values.append((line.split('\t')[0], list(map(float, line.split('\t')[1:]))))# 打印结果
print("X values:", x)
print("header len:", len(header))# 创建图形
plt.figure(figsize=(10, 6))# 定义 10 个不同的标记
markers = ['o', 's', '^', 'v', '<', '>', 'p', 'P', '*', 'x']# 绘制折线图
# plt.plot(x, y_0_1, marker='o', label='0.1', color='blue')
# plt.plot(x, y_0_2, marker='o', label='0.2', color='green')
i = 0
for lable, y_value in y_values:print(lable, y_value)plt.plot(x, y_value, marker=markers[i], label=lable)i += 1# 设置 x 轴刻度和标签
# plt.xticks(x, ['100', '110', '120', '130', '140', '150', '160', '170', '180', '190', '200'])  # 可以指定自定义标签
plt.xticks(x, header[1:])  # 可以指定自定义标签# 设置标题和标签
plt.title('recall change with L_search', fontsize=16)
plt.xlabel('L_search', fontsize=14)
plt.ylabel('recall', fontsize=14)# 设置 x 轴刻度
plt.xticks(x)# 设置y轴的范围
plt.ylim(0.4, 1)# 显示图例
plt.legend(title='method', loc='lower right')# 添加网格
plt.grid()# 保存图形
plt.savefig('performance_comparison.png', dpi=300)  # 保存为 PNG 文件,设置分辨率为 300 DPI# 显示图形
# plt.tight_layout()
# plt.show()

点坐标的折线图

数据:

  • 第i行和第i+1行作为一组数据,其中i行为x轴值,i+1行为y轴值
  • 第一列为标签
    在这里插入图片描述

图片:
在这里插入图片描述

代码:

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties# 设置字体为支持中文的字体
plt.rcParams['font.family'] = ['Noto Sans CJK JP']
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号# 原始数据字符串
# 第i行和第i+1行作为一组数据,其中i行为x轴值,i+1行为y轴值
data = """
recall_method_1	0.6829	0.7877	0.8284	0.8509	0.8629
ops_1_method_1	35.8491	26.2454	22.2438	18.26	16.6084
recall_method_2	0.6	0.7	0.8	0.85	0.86
ops_1_method_2	40	30	22	16	15
"""# x轴标签
lines = data.strip().split('\n')
# header = lines[0].split('\t')   # 第一行是x轴标签
# x = list(range(len(header)-1))  # 构建x轴的坐标值,从第二列开始# 获取 y 值
data_pair = []
for line_cnt in range(len(lines)//2):x_line = lines[line_cnt*2]y_line = lines[line_cnt*2+1]print(x_line)print(y_line)x_values = ((x_line.split('\t')[0], list(map(float, x_line.split('\t')[1:]))))y_values = ((y_line.split('\t')[0], list(map(float, y_line.split('\t')[1:]))))data_pair.append((x_values, y_values))# 创建图形
plt.figure(figsize=(10, 6))# 定义 10 个不同的标记
markers = ['o', 's', '^', 'v', '<', '>', 'p', 'P', '*', 'x']i = 0
for x_values, y_values in data_pair:print(" ", i, "x_values", x_values)print(" ", i, "y_values", y_values)plt.plot(x_values[1], y_values[1], marker=markers[i], label=y_values[0])i += 1# 设置 x 轴刻度和标签
# plt.xticks(x, ['100', '110', '120', '130', '140', '150', '160', '170', '180', '190', '200'])  # 可以指定自定义标签
# plt.xticks(x, header[1:])  # 可以指定自定义标签# 设置标题和标签
# plt.title('xxxxx', fontsize=16)
plt.xlabel('recall', fontsize=14)
plt.ylabel('OPS/sec', fontsize=14)# 设置 x 轴刻度
# plt.xticks(x)# 设置轴的范围
# plt.ylim(0.4, 1)
plt.xlim(0.6, 1)# 显示图例
plt.legend(title='method', loc='upper right')# 添加网格
plt.grid()# 保存图形
plt.savefig('performance_comparison.png', dpi=300)  # 保存为 PNG 文件,设置分辨率为 300 DPI# 显示图形
# plt.tight_layout()
# plt.show()

相关文章:

python 画图例子

目录 多组折线图点坐标的折线图 多组折线图 数据: 第1行为x轴标签第2/3/…行等为数据,其中第一列为标签&#xff0c;后面为y值 图片: 代码: import matplotlib.pyplot as plt# 原始数据字符串 # 第1行为x轴标签 # 第2/3/...行等为数据,其中第一列为标签&#xff0c;后面…...

Win11 22H2/23H2系统11月可选更新KB5046732发布!

系统之家11月22日报道&#xff0c;微软针对Win11 22H2/23H2版本推送了2024年11月最新可选更新补丁KB5046732&#xff0c;更新后&#xff0c;系统版本号升至22621.4541和22631.4541。本次更新后系统托盘能够显示缩短的日期和时间&#xff0c;文件资源管理器窗口很小时搜索框被切…...

【STM32】MPU6050初始化常用寄存器说明及示例代码

一、MPU6050常用配置寄存器 1、电源管理寄存器1&#xff08; PWR_MGMT_1 &#xff09; 此寄存器允许用户配置电源模式和时钟源。 DEVICE_RESET &#xff1a;用于控制复位的比特位。设置为1时复位 MPU6050&#xff0c;内部寄存器恢复为默认值&#xff0c;复位结束…...

深度学习中的mAP

在深度学习中&#xff0c;mAP是指平均精度均值(mean Average Precision)&#xff0c;它是深度学习中评价模型好坏的一种指标(metric)&#xff0c;特别是在目标检测中。 精确率和召回率的概念&#xff1a; (1).精确率(Precision)&#xff1a;预测阳性结果中实际正确的比例(TP / …...

Redis设计与实现 学习笔记 第二十章 Lua脚本

Redis从2.6版本引入对Lua脚本的支持&#xff0c;通过在服务器中嵌入Lua环境&#xff0c;Redis客户端可以使用Lua脚本&#xff0c;直接在服务器端原子地执行多个Redis命令。 其中EVAL命令可以直接对输入的脚本进行求值&#xff1a; 而使用EVALSHA命令则可以根据脚本的SHA1校验…...

大模型(LLMs)推理篇

大模型&#xff08;LLMs&#xff09;推理篇 1. 为什么大模型推理时显存涨的那么多还一直占着&#xff1f; 首先&#xff0c;序列太长了&#xff0c;有很多Q/K/V&#xff1b;其次&#xff0c;因为是逐个预测next token&#xff0c;每次要缓存K/V加速解码。 大模型在gpu和cpu上…...

Leetcode 412. Fizz Buzz

Problem Given an integer n, return a string array answer (1-indexed) where: answer[i] “FizzBuzz” if i is divisible by 3 and 5.answer[i] “Fizz” if i is divisible by 3.answer[i] “Buzz” if i is divisible by 5.answer[i] i (as a string) if none of t…...

双因子认证:统一运维平台安全管理策略

01双因子认证概述 双因子认证&#xff08;Two-Factor Authentication&#xff0c;简称2FA&#xff09;是一种身份验证机制&#xff0c;它要求用户提供两种不同类型的证据来证明自己的身份。这通常包括用户所知道的&#xff08;如密码&#xff09;、用户所拥有的&#xff08;如…...

CMake笔记:install(TARGETS target,...)无法安装的Debug/lib下

1. 问题描述 按如下CMake代码&#xff0c;无法将lib文件安装到Debug/lib或Release/lib目录下&#xff0c;始终安装在CMAKE_INSTALL_PREFIX/lib下。 install(TARGETS targetCONFIGURATIONS DebugLIBRARY DESTINATION Debug/lib) install(TARGETS targetCONFIGURATIONS Release…...

使用ENSP实现NAT

一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为12.12.12.1/30 ip address 12.12.12.1 30进入e0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置…...

漫步北京小程序构建智慧出行,打造旅游新业态模式

近年来&#xff0c;北京市气象服务中心持续加强推进旅游气象服务&#xff0c;将旅游气象监测预警基础设施纳入景区配套工程&#xff0c;提升气象和旅游融合发展水平&#xff0c;服务建设高品质智慧旅游强市。 天气条件往往影响着旅游景观的体验&#xff0c;北京万云科技有限公…...

对齐输出

对齐输出 C语言代码C 语言代码Java语言代码Python语言代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 输入三个整数&#xff0c;按每个整数占8个字符的宽度&#xff0c;右对齐输出它们。 输入 只有一行&#xff0c;包含三个整数&…...

Wekan看板安装部署与使用介绍

Wekan看板安装部署与使用介绍 1. Wekan简介 ​ Wekan 是一个开源的看板式项目管理工具&#xff0c;它的配置相对简单&#xff0c;因为大多数功能都是开箱即用的。它允许用户以卡片的形式组织和跟踪任务&#xff0c;非常适合敏捷开发和日常任务管理。Wekan 的核心功能包括看板…...

VisionPro 机器视觉案例 之 黑色齿轮

第十五篇 机器视觉案例 之 齿轮齿数检测 文章目录 第十五篇 机器视觉案例 之 齿轮齿数检测1.案例要求2.实现思路2.1 统计齿轮齿数使用模板匹配工具CogPMAlignTool&#xff0c;并从模板匹配工具的结果集中得到每一个齿的中心点。2.2 测量距离需要知道两个坐标点&#xff0c;一个…...

学习python的第十三天之数据类型——函数传参中的传值和传址问题

学习python的第十三天之数据类型——函数传参中的传值和传址问题 函数传参中的传值和传址问题 函数传参的机制可以理解为传值&#xff08;pass-by-value&#xff09;和传址&#xff08;pass-by-reference&#xff09;的混合体&#xff0c;但实际上更接近于传对象引用&#xff…...

Windows11深度学习环境配置

CUDA、CUDNN 一、安装另一个版本的CUDA 下载.exe文件&#xff0c;网址打不开自己开热点就能解决&#xff1a;CUDA Toolkit 11.2 Downloads | NVIDIA Developer 若遇到“You already have a newer version of the NVIDIA Frameview SDK installed” 1.把电脑已经存在的FrameVi…...

电销老是被标记,该如何解决!!!

在当今的商业世界中&#xff0c;电话销售依然是许多企业拓展业务、接触客户的重要手段。然而&#xff0c;电销人员常常面临一个令人头疼的问题 —— 老是被标记。 一、电销被标记的困扰 当你的电话号码被频繁标记为 “骚扰电话”“推销电话” 等&#xff0c;会带来一系列不良…...

MyBatis入门——基本的增删改查

目录 一、MyBatis简介 二、搭建MyBatis (一)配置依赖 (二)log4j日志功能 (三)数据库配置文件——jdbc.properties (四)创建MyBatis的核心配置文件 (五)使用MyBatisX插件 三、项目其他配置搭建 (一)创建数据库连接工具类 (二)创建表 (三)创建数据库的实体类 (四)Use…...

学习Gentoo系统中二进制软件包和源代码包的概念

Gentoo Linux 是一个以源代码包管理和高度定制化特性著称的Linux发行版。以下是关于Gentoo系统中二进制软件包和源代码包的概念、发展历程以及它们各自的优势&#xff1a; 二进制软件包概念及发展历程&#xff1a; 概念&#xff1a;Gentoo的二进制软件包是指预先编译好的软件包…...

麦肯锡报告 | 未来的经济引擎:解读下一代竞争领域

随着科技和商业的快速发展&#xff0c;一些具有高增长性和高动态性的行业正在悄然崛起&#xff0c;成为推动全球经济发展的新引擎。这些行业被称为“竞争领域”&#xff08;Arenas&#xff09;。据麦肯锡全球研究院&#xff08;MGI&#xff09;的研究&#xff0c;这些领域有望在…...

连接mysql并读取指定表单数据到DataFrame

提问 python 如何连接mysql并读取指定表单数据到DataFrame 解答 要在Python中连接MySQL并读取指定表单数据到DataFrame&#xff0c;你可以使用pandas库结合sqlalchemy引擎或者mysql-connector-python。这里我将展示两种方法的示例代码。 使用pandas和sqlalchemy 确保安装了…...

从入门到精通数据结构----四大排序(上)

目录 首言&#xff1a; 1. 插入排序 1.1 直接插入排序 1.2 希尔排序 2. 选择排序 2.1 直接选择排序 2.2 堆排序 3. 交换排序 3.1 冒泡排序 3.2 快排 结尾&#xff1a; 首言&#xff1a; 本篇文章主要介绍常见的四大排序&#xff1a;交换排序、选择排序、插入排序、归并排…...

【bug】使用transformers训练二分类任务时,训练损失异常大

使用transformers训练二分类任务时&#xff0c;训练损失异常大 问题分析 问题 training_loss异常大&#xff0c;在二分类损失中&#xff0c;收敛在1~2附近&#xff0c;而eval_loss却正常&#xff08;小于0.5&#xff09; 分析 参考&#xff1a; Bug in gradient accumulation…...

文献阅读与笔记整理技巧

文献阅读 1.原因 &#xff08;1&#xff09;了解背景知识&#xff08;硕博学位论文&#xff0c;大牛文献综述&#xff09; &#xff08;2&#xff09;把握研究方向&#xff08;行业最新论文&#xff0c;大牛文献综述&#xff09; &#xff08;3&#xff09;学习设计思路&am…...

Python Flask中集成SQLAlchemy和Flask-Login

在现代Web应用开发中,数据库和用户认证是两个非常重要的功能。Flask作为一个轻量级的Python Web框架,本身只提供了最基本的Web功能。但是,它可以通过集成各种优秀的扩展库来增强功能。本文将介绍如何在Flask应用中集成SQLAlchemy(数据库)和Flask-Login(用户认证),并提供一个完整…...

esp32 JTAG 串口 bootload升级

文章目录 一、前言二、了解 JTAG 和 Ymodem 的工作原理2.1 环境准备2.2 Ymodem 协议工作原理2.3 固件分区准备 三、关键升级函数五、使用shell 测试 一、前言 如果使用 JTAG 串口 结合 Ymodem 协议 实现 ESP32 的固件升级&#xff0c;整体逻辑将围绕通过串口传输固件文件并将其…...

【linux】(17)压缩和解压

tar tar 是一个用于创建、维护、修改和解压缩存档文件的 Linux 命令。tar 常常用于备份文件或者将多个文件打包成一个文件以便于传输或存储。以下是 tar 命令的详细教程&#xff0c;包括常用选项和示例&#xff1a; 基本语法 tar [选项] [文件或目录]常用选项 -c&#xff1…...

摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现

随着科技的不断进步&#xff0c;摄像机视频分析软件的发展已经为我们的生活带来了许多便捷。其中&#xff0c;LiteAIServer视频智能分析平台的玩手机打电话检测算法技术尤为突出&#xff0c;它利用先进的图像处理和人工智能技术&#xff0c;能够自动识别并监控视频中的玩手机或…...

springboot购物推荐网站的设计与实现(代码+数据库+LW)

摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求&#xff0c;创建了一个计算机管理东大每日推购物推荐网站的方案。文章介…...

【Unity3D插件】Unity3D HDRP Outline高亮发光轮廓描边插件教程

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 最近用Unity3D的HDRP&#xff08;高清渲染管…...