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()

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

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

相关文章

未来已来:少儿编程竞赛聚焦物联网,激发创新潜力

随着人工智能与物联网技术&#xff08;IoT&#xff09;的快速发展&#xff0c;少儿编程教育正在迎来新的变革浪潮。近年来&#xff0c;各类少儿编程竞赛纷纷增加了物联网相关主题&#xff0c;要求学生结合编程知识和硬件设备设计智能家居、智慧城市等创新项目。这一趋势不仅丰富…

Java-08 深入浅出 MyBatis - 多对多模型 SqlMapConfig 与 Mapper 详细讲解测试

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

字符串专题 算法小题

感觉很久不做题了, 本身自己虽然就没水平就是啦哈哈~ 那下面分享几道最近写的几道题, 都很简单, 是关于"字符串"的, 只不过会稍微用到一点代码能力就是了, 算是比较基础的题目. 目录 1.最长公共区域(⭐⭐⭐ 代码)1.1 题目描述1.2 题目思路方法1: 两两求公共区域方法2…

虚拟化的三种方式

1.前言 Virtualization(虚拟化)是让公开的虚拟资源等同于被虚拟化的底层物理资源。虚拟化在各个领域应用很广泛&#xff0c;不局限于计算机科学领域。无论是在硬件、软件还是在嵌入式子系统中&#xff0c;虚拟化总是使用或组合三种简单的技术来实现的&#xff1a;多路复用(Mul…

使用yolov5查看模式标注情况

import cv2 from ultralytics import YOLO# 加载模型 model YOLO(E:\\yolov\\yolov9\\runs\\detect\\train4\\weights\\best.pt) # 替换为您的模型路径# 读取视频文件 cap cv2.VideoCapture(5.mp4) # 替换为您的视频文件路径# 定义输出视频的编码器和创建VideoWriter对象 f…

Rust 力扣 - 198. 打家劫舍

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 假设f(i)表示在[1, i]号内的房屋内进行偷盗能够获得的最高金额 存在递推公式 f(i) max(f(i - 1), f(i - 2) nums[i]) 即f(i)为选择i - 1号房屋的最大金额 和 选择i - 2号房屋的最大金额 的最大值 题解代码 …

Redis持久化、主从及哨兵架构详解

Redis持久化 RDB快照&#xff08;snapshot&#xff09; 在默认情况下&#xff0c;Redis将内存数据库快照保存在名字为dump.rdb的二进制文件中。 你可以对Redis进行设置&#xff0c;让它在“N秒内数据集至少有M个改动”这一条件被满足时&#xff0c;自动保存一次数据集。 比…

解决启动Tomcat时出现的乱码问题

日志乱码 日志乱码就是启动Tomcat时红色的字体出现乱码&#xff08;下图没有乱码&#xff09;。 解决方案 &#xff1a; 找到Tomcat的安装目录&#xff0c;点进conf目录 点进logging.properties文件 找到java.util.logging.ConsoleHandler.encoding字段&#xff0c;修改成GBK…

网络爬虫——常见问题与调试技巧

在开发网络爬虫的过程中&#xff0c;开发者常常会遇到各种问题&#xff0c;例如网页加载失败、数据提取错误、反爬机制限制等。以下内容将结合实际经验和技术方案&#xff0c;详细介绍解决常见错误的方法&#xff0c;以及如何高效调试和优化爬虫代码。 1. 爬虫过程中常见的错误…

初识Linux(3):Linux基础环境工具(上)

目录 1. yum 1.1 软件的生态 1.2 yum使用 2. vim 4. vim三种模式的更详细命令 5. gcc 6. 重要概念&#xff1a;函数库 7. 动态库与静态库 8. 自动化构建工具&#xff1a;make/Makefile .PHONY 9. make 与 是否执行 %通识符 生成两个可执行程序 10.练习 &#xff…

负载均衡在线OJ项目

OnlineJudge 前言所用技术开发环境 1. 需求分析2. 项目宏观结构3. compile_server服务设计3.1 compiler服务设计3.2 runner服务设计3.3 compile_run3.4 compile_server.cpp 4. oj_server服务设计4.1 model设计4.2 view设计4.3 control设计4.3.1 获取题目列表功能4.3.2 获取单个…

Kafka 分区分配及再平衡策略深度解析与消费者事务和数据积压的简单介绍

Kafka&#xff1a;分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析&#xff1a;从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

使用argo workflow 实现springboot 项目的CI、CD

文章目录 基础镜像制作基础镜像设置镜像源并安装工具git下载和安装 Maven设置环境变量设置工作目录默认命令最终dockerfile 制作ci argo workflow 模版volumeClaimTemplatestemplatesvolumes完整workflow文件 制作cd argo workflow 模版Workflow 结构Templates 定义创建 Kubern…

进程间通信--详解

目录 前言一、进程间通信介绍1、进程间通信目的2、进程间通信发展3、进程间通信的分类4、进程间通信的必要性5、进程间通信的技术背景6、进程间通信的本质理解 二、管道1、什么是管道2、匿名管道pipe&#xff08;1&#xff09;匿名管道的原理&#xff08;2&#xff09;pipe函数…

【虚拟机】VMWare的CentOS虚拟机断电或强制关机出现问题

VMware 虚拟机因为笔记本突然断电故障了&#xff0c;开机提示“Entering emergency mode. Exit the shell to continue.”&#xff0c;如下图所示&#xff1a; 解决方法&#xff1a;输入命令&#xff1a; xfs_repair -v -L /dev/dm-0 注&#xff1a;报 no such file or direct…

FinalShell进行前端项目部署及nginx配置

首先需要准备服务器(阿里云、腾讯云都可)与域名&#xff1b; 示例为阿里云服务器&#xff1b; 1.进行FinalShell下载 下载官网 https://www.hostbuf.com/ 2.下载完毕后 配置FinalShell ssh ​ 名称自定义即可&#xff01; 2-1 提示连接成功 ​ 3.首先检查nginx是否下载 …

[RabbitMQ] 重试机制+TTL+死信队列

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

(附项目源码)Java开发语言,220 ssm电影推荐系统的分析与设计,计算机毕设程序开发+文案(LW+PPT)

目 录 摘 要 Abstract 第1章 前 言 1.1 研究背景 1.2 研究现状 1.3 系统开发目标 第2章 技术与原理 2.1 开发技术 2 2.2 ssm框架介绍 2 2.3 MySQL数据库 2 2.4 B/S结构 2 第3章 需求分析 3.1 需求分析 3.2 系统可行性分析 3.3 项目设计目标与原则 3.4…

--- 文件IO java ---

文本文件和二进制文件 文件再底层其实就是以一段二进制数据的形式储存的&#xff0c;当我用记事本打开文件时&#xff0c;有些文件会出现乱码&#xff0c;这就是二进制文件&#xff0c;而有一些文件是特殊的&#xff0c;他以特定的编码方式&#xff08;比如ascll&#xff09;可…

Linux各种并发服务器优缺点

本文旨在介绍针对“无并发C/S模型”改进的方法总结以及各种改进方法的优缺点&#xff0c;具体函数的实现并不介绍。 1. 无并发C/S模型 创建服务器流程分析&#xff1a; socket()创建服务器的监听套接字bind()将服务器给服务器的监听套接字绑定IP地址和Port端口号listen()设置…