当前位置: 首页 > 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;这些领域有望在…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...