matplotlib绘制统计特征图和分布特征图

文章目录

  • 一、统计特征图绘制
    • 1.需求
    • 2.代码
      • 方法一
      • 方法二
      • 总结
  • 二、分布特征图绘制
    • 1.需求
    • 2.代码

一、统计特征图绘制

1.需求

我现在有两个数据集Pdata和Cdata分别在DataFrame对象中,我现在想对这两个数据集进行统计特征分析,并用直方图展示出来。

2.代码

方法一

# 查看提取数据的统计特征
p1 = Pdata.describe()
c1 = Cdata.describe()
# 绘制指标
metrics = ['mean', 'std', '25%', '50%', '75%']
# 创建一个包含3行和2列的子图布局,每个子图的大小为 (20, 12)
# 这里的axes是一个3×2的数组,里面存放的是Axes对象,可以理解为画布上的一块区域,您可以在这个区域上绘制各种图形
fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(20, 12))
for i, metric in enumerate(metrics):
    row = i // 2
    col = i % 2
    # 绘制出p1的一个条形图
    # 第一个参数:柱子在x轴上的坐标,即每个条形图的横坐标位置,类数组结构。
	# 第二个参数:柱子的高度,即每个条形图的高度,类数组结构。
    # width=0.4控制柱状图的宽度,alpha=0.7控制柱状图的透明度。
    axes[row, col].bar(range(len(p1.columns)), p1.loc[metric], width=0.4, label='p1', alpha=0.7)
    # 绘制出c1的一个条形图,为了避免两组柱状图重叠,我们将第二组柱状图的位置平移了0.4个单位
    axes[row, col].bar([j + 0.4 for j in range(len(c1.columns))], c1.loc[metric], width=0.4, label='c1', alpha=0.7)
    # 设置 x 轴刻度的位置
    axes[row, col].set_xticks([j + 0.2 for j in range(len(p1.columns))])
    # 设置x轴的刻度标签,进行了45度旋转和右对齐
    axes[row, col].set_xticklabels(range(1, len(p1.columns) + 1), rotation=45, ha='right')
    # 添加图例
    axes[row, col].legend()
    axes[row, col].set_title(metric)
# 自动调整子图布局,使它们适应整个图形区域,同时避免重叠和裁剪
plt.tight_layout()
plt.savefig('metrics.png')

在这里插入图片描述

方法二

metrics = ['mean', 'std', '25%', '50%', '75%']
# 创建一个新的空白画布
plt.figure(figsize=(19, 10))
for i, metric in enumerate(metrics):
	# 在当前画布中创建一个子图,3行2列的布局,当前子图的位置由 i+1 指定
    plt.subplot(3, 2, i + 1)
    plt.bar(range(len(p1.columns)), p1.loc[metric], width=0.4, label='p1', alpha=0.7)
    plt.bar([j + 0.4 for j in range(len(c1.columns))], c1.loc[metric], width=0.4, label='c1', alpha=0.7)
    plt.xticks(ticks=[j + 0.2 for j in range(len(p1.columns))], labels=range(1, len(p1.columns) + 1), rotation=45, ha='right')
    plt.legend()
    plt.title(metric)
plt.tight_layout()
plt.savefig('metrics.png')

在这里插入图片描述

总结

这两种方法都可以用来画子图,但它们的使用方式略有不同,适用于不同的情况:

  1. 方法一

    • 这种方式是一次性创建一个包含多个子图的画布,并返回一个包含所有子图的Axes对象数组。
    • 这种方法适合需要同时处理多个子图的情况,可以更方便地对所有子图进行操作,例如调整子图之间的间距、设置共享轴等。
  2. 方法二

    • 这种方式是先创建一个空白画布,然后在循环中逐个添加子图。
    • 这种方法适合需要在每个子图之间进行个性化设置或处理的情况,例如设置不同子图的标题、颜色等。

总体来说,方法一适用于需要创建多个子图且希望一次性处理它们的情况,而方法二适用于需要逐个处理子图或对子图进行个性化设置的情况。

二、分布特征图绘制

1.需求

我现在有两个数据集Pdata和Cdata分别在DataFrame对象中,我现在想对这两个数据集进行分布特征分析,即各个数据段的密度分析,并用直方图展示出来。

2.代码

cols_to_plot1 = ['feature_0', 'feature_1', 'feature_2', 'feature_3', 'feature_4', 'feature_5', 'feature_6', 'feature_7', 'feature_8']
plt.figure(figsize=(19, 10))
for i, col in enumerate(cols_to_plot1):
    plt.subplot(3, 3, i+1)
    # 绘制数据的分布情况,bins指定了直方图的箱数,stat='density'参数用于指定绘制的统计信息是归一化的密度而不是数量
    sns.histplot(Pdata[col], bins=15, label='p1', stat='density')
    sns.histplot(Cdata[col], bins=15, label='c1', stat='density')
    plt.legend()
plt.tight_layout()
plt.savefig('feature.png')

在这里插入图片描述

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

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

相关文章

在线预订酒店房源小程序源码系统平台版 带完整的安装代码包以及搭建教程

近年来,互联网技术的飞速发展推动了各行各业的数字化转型。酒店行业也不例外,传统的酒店预订方式已经无法满足现代旅客的需求。旅客期望能够随时随地通过手机或电脑进行酒店预订,并享受到个性化的服务体验。因此,开发一款功能齐全…

107 在携带请求体的情况下, hutool 将 get 请求转换为了 post 请求

前言 本问题主要是来自于同事 情况大致如下, 同样的代码 一个是测试用例, 一个是生产环境的应用, 访问同一个第三方服务, 参数什么的完全一致 但是 出现的问题就是 测试用例能够拿到正确的对方的响应, 但是 生产环境的应用 却是拿到的对方的报错 然后 我开始以为是 是否…

【进阶五】Python实现SDVRP(需求拆分)常见求解算法——离散粒子群算法(DPSO)

基于python语言,采用经典离散粒子群算法(DPSO)对 需求拆分车辆路径规划问题(SDVRP) 进行求解。 目录 往期优质资源1. 适用场景2. 代码调整3. 求解结果4. 代码片段参考 往期优质资源 经过一年多的创作,目前已…

邮箱与Email有何异同?如何正确使用它们?

邮箱与Email之间有何联系?如何正确区分邮箱和Email? 电子邮箱已成为我们日常生活和工作中不可或缺的一部分。而提到电子邮箱,很多人会自然而然地联想到“邮箱”这个词。那么,邮箱与Email之间究竟有哪些异同呢?让AokSe…

【LeetCode每日一题】2312. 卖木头块(DFS记忆化搜索+动态规划)

文章目录 [2312. 卖木头块](https://leetcode.cn/problems/selling-pieces-of-wood/)思路1:用DFS进行记忆化搜索代码:思路2:动态规划代码: 2312. 卖木头块 思路1:用DFS进行记忆化搜索 1.要用DFS深度优先遍历每一种情况。在递归的同时,不断更…

React状态管理Mobx

1 https://zh.mobx.js.org/README.html 2 https://juejin.cn/post/7046710251382374413 3 https://cn.mobx.js.org/refguide/observable.html ​​mobx入门基础教程-慕课网​​ ​​Mobx学习 - 掘金​​ 十分钟入门 MobX & React ​​十分钟入门 MobX & React​​…

[BSidesCF 2019]Pick Tac Toe

[BSidesCF 2019]Pick Tac Toe 首先进行常规的信息收集,尝试几次下三子棋后查看源码发现 此时只需要更改id为r的,将他改为X,我们就胜利了抓包发现,数据通过post提交参数为move,顺便再下一子,抓包更改为move…

迈向容错新时代!PASQAL发布最新技术路线图

内容来源:量子前哨(ID:Qforepost) 编辑丨慕一 编译/排版丨沛贤 深度好文:1200字丨8分钟阅读 近日,法国中性原子量子计算公司PASQAL发布了最新技术路线图,概述了其在硬件、业务场景用例及进一…

迁移学习的技术突破与应用前景

目录 前言1 迁移学习技术1.1 原理与分类1.2 主要挑战 2 迁移学习应用2.1 计算机视觉2.2 医疗健康 3 未来展望3.1 推动各领域发展3.2 提高模型泛化能力和效果3.3 在新兴领域中广泛应用 结语 前言 迁移学习作为机器学习领域的重要技术之一,以其能够将从一个任务中学到…

为什么延迟删除可以保证MYSQL 与redis的一致性?

看过很多保持MYSQL 与redis保持一致性的文章都提到了延迟删除,其实脱离任何业务场景的设计都是不切实际的,所以我会本着一个通用的读写场景去分析为什么延迟删除大概率可以保证MYSQL与redis的最终一致。 通常的读写场景 通常在使用redis作为读写缓存时…

蓝桥杯-02-2023蓝桥杯c/c++省赛B组题目

参考 2023 年第十四届蓝桥杯 C/C B组省赛题解 2023蓝桥杯c/c省赛B组题目(最全版): A:日期统计 这题方法应该很多,没有和别人讨论想法。我的解法思路是:先 load 函数生成所有这一年的合法日期,然后枚举所有可以从数据…

嵌套循环实现九九乘法表

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 案例描述 利用嵌套循环&#xff0c;实现九九乘法表。 代码 #include <iostream> #include <Windows.h>using namespace std;int main(void) {//外层循环执行一次&#…

《计算机考研精炼1000题》为你考研之路保驾护航

创作背景 在这个充满挑战与竞争的时代&#xff0c;每一位考生在备战研究生考试的过程中&#xff0c;都希望通过更多符合考纲要求的练习题来提高自己的知识和技能。为了满足这一需求&#xff0c;我们精心策划和编辑了这本《计算机考研精炼1000题》。在考研政治和考研数学领域&a…

格密码从词根词缀和单词起源的角度来介绍一下,commit词根词缀分析:词义发展:现代用法举例:小结:nuance词根词缀分析:词义发展:现代用法举例:小结:

目录 格密码 从词根词缀和单词起源的角度来介绍一下&#xff0c;commit 词根词缀分析&#xff1a; 词义发展&#xff1a; 现代用法举例&#xff1a; 小结&#xff1a; nuance 词根词缀分析&#xff1a; 词义发展&#xff1a; 现代用法举例&#xff1a; 小结&#xff…

微服务高级篇(一):微服务保护+Sentinel

文章目录 一、初识Sentinel1.1 雪崩问题及解决方案1.2 微服务保护技术对比1.3 Sentinel介绍与安装1.4 微服务整合Sentinel 二、Sentinel的流量控制三、Sentinel的隔离与降级四、Sentinel的授权规则五、规则持久化5.1 规则管理模式【原始模式、pull模式、push模式】5.2 实现push…

B端界面不漂亮,所以搞不定客户,这就扯淡了。

在商业领域&#xff0c;产品的外观和用户体验确实对吸引和留住客户起着重要的作用。漂亮的界面设计可以提升用户对产品的好感和信任度&#xff0c;从而增加用户的使用和购买意愿。 虽然贝格前端工场致力于提升B端系统的感官和体验&#xff0c;但是我们依然认为界面美观不美观&…

c语言综合练习题

1.编写程序实现键盘输入一个学生的学分绩点 score&#xff08;合法的范围为:1.0—5.0&#xff09;&#xff0c;根据学生的学分绩点判定该学 生的奖学金的等级&#xff0c;判定规则如下表所示。 #include <stdio.h>int main() {float score;printf("请输入学生的学分…

解决jenkins运行磁盘满的问题

参考&#xff1a;https://blog.csdn.net/ouyang_peng/article/details/79225993 分配磁盘空间相关操作&#xff1a; https://cloud.tencent.com/developer/article/2230624 登录jenkins相对应的服务或容器中查看磁盘情况&#xff1a; df -h在102挂载服务器上看到是这两个文件…

c++的STL(5)-- set和multiset容器

set和multiset容器概述 首先set和multiset这两种容器底层是红黑树(是一种数据结构&#xff0c;是树形结构)实现的。我们前面说到vector,deque容器是插入数据慢&#xff0c;但是读取数据快&#xff0c;list呢恰恰相反&#xff0c;插入数据快&#xff0c;查询慢。但是set和multis…

【算法】双指针的应用

文章目录 前言1. 移动零&#xff08;easy&#xff09;2. 复写零&#xff08;easy&#xff09;3. 快乐数&#xff08;medium&#xff09;4. 盛水最多的容器&#xff08;medium&#xff09;5. 有效三角形的个数&#xff08;medium&#xff09;6.和为 s 的两个数字&#xff08;eas…