颜色渐变的数据密集适用的堆叠图

一般情况会用柱状图去堆叠,但是如果数据量太大了,就可考虑这种方式堆叠。可以呈现时间和数量上不同层次数据的变化。

效果图:

在这里插入图片描述


比较详细的注释一下源码:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
mpl.use("Agg")# 页面访问频率随时间的变化def main():# 图片抬头的信息abbr_workload_name = "图片标题"scanning_interval = 5 # 扫描时间间隔thp = "4kB" # 页面大小# 数据文件路径file_path = "./hags_NPB_based.log"img_name = "图片名称"y_values = []x_tmp = []# 使用 with 语句打开一个文件。file_path 是文件的路径。使用 with 语句可以确保在处理完文件后,文件会被正确关闭,即使在处理文件过程中发生异常也会被处理。with open(file_path) as f:  # 它迭代文件f中的每一行。每次迭代时,将当前行的内容赋值给变量linefor line in f:# 使用 split 方法将 line 字符串按逗号 , 分割成一个列表。split 方法会根据指定的分隔符将字符串分割成多个子字符串,并返回一个包含这些子字符串的列表。在这里,使用逗号作为分隔符将当前行分割成多个字段。splitted_line = line.split(",")# 数据预处理# 将每一行数据的的第一个数据去掉x_tmp.append(splitted_line[0])# 使用列表推导式,将 splitted_line 列表中的每个元素转换为浮点数,并进行除法计算# 根据需求splitted_line[1:]反向迭代的方式,最前面读取到的数据堆叠在最下面value_li = [float(n) / 1024 for n in splitted_line[1:]]  y_values.append(value_li)y_tran = np.transpose(y_values)  # 做了一次转置x_values = range(len(x_tmp))# 作图fig, ax = plt.subplots()fig.tight_layout()# Seaborn 库中用于绘制调色板的函数。它接受一个调色板对象作为参数,并可选地接受其他一些参数来调整绘图效果。# sns.palplot(palette="bright", size=1.5, aspect=0.5, show=True)# palette:必需参数,要绘制的调色板对象。可以是预定义的调色板名称(字符串),也可以是由颜色值组成的列表或数组。常见的预定义调色板名称包括 "deep"、"bright"、"dark"、"colorblind" 等。# size:可选参数,调色板中颜色块的大小。默认值为 1,表示每个颜色块的大小为 1x1。# aspect:可选参数,调色板中颜色块的纵横比。默认值为 1,表示每个颜色块的宽度与高度相等。# show:可选参数,是否显示调色板。默认为 True,显示调色板;设置为 False,则不显示调色板,仅返回颜色块的坐标和颜色值。pal = sns.light_palette("darkblue", n_colors=13, reverse=True)# 绘制堆叠区域图ax.stackplot(x, y, *args, **kwargs)# x: 作为 x 轴坐标的数组或范围对象;y: 作为 y 轴坐标的多个数组,每个数组代表一个堆叠区域的数据。# *args: 可选参数,可以传递额外的参数,如标签、线宽等;**kwargs: 可选关键字参数,可以传递额外的参数,如颜色、透明度等。ax.stackplot(x_values, y_tran, colors=pal)ax.set_xlabel("Execution Time (epochs)", fontsize=15)ax.set_xlim(min(x_values), max(x_values))ax.set_ylim(bottom=0)start, end = ax.get_ylim()ax.tick_params(axis="x", labelsize=15)ax.tick_params(axis="y", labelsize=15)ax.set_ylabel("Allocated\nMem. Size (MB)", fontsize=15)ax.set_title("%s - %s %ds" % (abbr_workload_name, thp, scanning_interval), fontsize=16.5)tick_interval = int(end / 5)ax.yaxis.set_ticks(np.arange(start, end, tick_interval))line_plot_data = [0] * len(y_tran[0])for y_value_li in y_tran:for i in range(len(y_tran[0])):line_plot_data[i] += y_value_li[i]ax.plot(x_values, line_plot_data, linewidth=1.7, color="black")print(abbr_workload_name)filename = "%s_%s_%d" % (abbr_workload_name.replace(".", "_"), thp, scanning_interval)filename = filename.replace("_.", ".").replace("__", "_")fig.savefig(img_name, bbox_inches="tight")plt.show()plt.close()if __name__ == "__main__":main()

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

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

相关文章

OpenAI的新语言模型升级是否会改变人工智能领域的格局?

近年来,人工智能领域取得了巨大的进展,其中语言模型的发展尤为引人注目。而在这个领域的重要参与者之一,OpenAI近期宣布了其大型语言模型API的重大升级,引发了业界的广泛关注。随着GPT-4和gpt-3.5-turbo等新版本的推出&#xff0c…

牛客网Verilog刷题——VL39

牛客网Verilog刷题——VL39 题目答案 题目 设计一个自动贩售机,输入货币有两种,为0.5/1元,饮料价格是1.5/2.5元,要求进行找零,找零只会支付0.5元。 1、投入的货币会自动经过边沿检测并输出一个在时钟上升沿到1&#x…

怎样寻找SEO服务商,需要注意那些问题?

网上提供SEO服务的公司或个人多如牛毛,随便在搜索引擎上搜索一下,成千上万的公司就在眼前。大部分网站设计公司也兼职SEO服务,寻找合适的SEO服务商并不简单,鉴别合格的SEO服务商是关键。 1、确定外包任务 如果没有SEO团队&…

单表查询练习

查看表的字符集编码 show create table tbname; 查看系统默认字符集 SHOW VARIABLES LIKE character_set_database; 显示所有可用的字符集 SHOW CHARACTER SET; 修改系统默认字符集 ①在 /etc/my.cnf 文件中的 [mysqld] 下添加: ②重启数据服务 systemctl re…

火车头采集器AI伪原创[php源码]

本文介绍php版本的火车头采集器AI伪原创,对于网站的原创内容,站长朋友们一定很头疼。作为一个草根站长,自己写原创文章太累了。当然,我并不是说你不能写。自己写原创文章是不现实的。时间是最大的问题。 也许有的站长朋友会问&…

Zabbix(二)

Zabbix(二) 一、部署代理服务器 1.作用 分布式监控的作用: ●分担 server 的集中式压力 ●解决多机房之间的网络延时问题2.步骤 2.1部署代理服务器端 systemctl disable --now firewalld setenforce 0 hostnamectl set-hostname zbx-proxy//设置 zabbix 的下载…

【数据结构】双向带头循环链表

⭐️ 往期相关文章 ✨链接1:数据结构和算法的概念以及时间复杂度空间复杂度详解 ✨链接2:【数据结构】手撕顺序表(动态版)代码详解 ✨链接3:【数据结构】手撕单链表代码详解 ⭐️ 双向带头循环链表 图解: 双向: 链表…

LVS简介及LVS-NAT负载均衡群集的搭建

目录 一、LVS群集简介 1.群集的含义和应用场景 2.性能扩展方式 3.群集的分类 负载均衡(LB) 高可用(HA) 高性能运算(HPC) 二、LVS负载均衡群集简介及搭建 1.负载均衡群集架构 2.三种工作模式 3.启…

C++教程(一)开发环境visual studio的安装——图文详细

一、visual studio下载地址: 1、百度网盘 链接:https://pan.baidu.com/s/1QJosSoAT7EumuvyjtC_1Iw?pwdwuqz 提取码:wuqz 2、官网下载 Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)https://visualstudio.…

python flask sqlite http服务

python flask 服务 为了让拼接项目能够简单实用http服务,用python flask 来做一个http服务,使用python的原因是拼接项目本身很多人工智能的服务是用python来写。数据库为了简单实用sqlite,python自带sqlite3 ,很方便 db.sql CREATE TABLE …

uni-app

uni-app 一、准备工作1.新建项目2.配置浏览器3.兼容4.新建页面 二、上手1.pages.json文件的页面配置与全局配置2.rpx尺寸单位3.内置组件4.vue2写法(1)模板(2)插值语法(3)指令(4)styl…

猿人学web刷题1

1.第一题 js混淆源码乱码 - 猿人学 : url 时间戳加密 右键遇到反调试&#xff0c;参考前面的文章 过反调试 2.ast解混淆 首页1.js 拿到 function oo0O0, 在<script>标签里面, 无法调试&#xff0c;分析自己提取出来&#xff0c;或则hook替换 加密逻辑存在于window.a中&a…