【重新定义matlab强大系列十三】直方图 bin 计数和分 bin 散点图

2023-09-17 15:59:22

🔗 运行环境:Matlab

🚩 撰写作者:左手の明天

🥇 精选专栏:《python》

🔥  推荐专栏:《算法研究》

#### 防伪水印——左手の明天 ####

💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗

💗今天开启新的系列——重新定义matlab强大系列💗

📆  最近更新:2023 年 09 月 17 日,左手の明天的第 290 篇原创博客

📚 更新于专栏:matlab

#### 防伪水印——左手の明天 ####


histcounts——直方图 bin 计数

函数说明

[N,edges] = histcounts(X) 

将 X 的值划分为多个 bin,并返回每个 bin 中的计数以及 bin 边界。histcounts 函数使用自动分 bin 算法,返回均匀宽度的 bin,这些 bin 可涵盖 X 中的元素范围并显示基本分布的形状。

[N,edges] = histcounts(X,nbins) 

使用标量 nbins 指定的 bin 数量。

[N,edges] = histcounts(X,edges) 

将 X 划分为由向量 edges 来指定 bin 边界的 bin。如果 edges(k) ≤ X(i) < edges(k+1),值 X(i) 位于第 k 个 bin 中。最后一个 bin 也包含 bin 的右边界,这样如果 edges(end-1) ≤ X(i) ≤ edges(end),它包含 X(i)

[N,edges,bin] = histcounts(___) 

还使用以前的任何语法返回索引数组 binbin 是大小与 X 相同的数组,其元素是 X 中的对应元素的 bin 索引。第 k 个 bin 中的元素数量是 nnz(bin==k),与 N(k) 相同。

N = histcounts(C)

(其中 C 是分类数组)返回向量 N,该向量指示 C 中其值等于 C 的各类别的元素的数量。C 中的每个类别在 N 中都有一个对应元素。

N = histcounts(C,Categories) 

仅对 C 中其值等于由 Categories 指定的类别子集的元素进行计数。

举例

bin 计数和 bin 边界

将 100 个随机值分布到多个 bin 内。histcounts 自动选择合适的 bin 宽度以显示数据的基本分布。

X = randn(100,1);
[N,edges] = histcounts(X)
N = 1×7

     2    17    28    32    16     3     2

edges = 1×8

    -3    -2    -1     0     1     2     3     4

指定 bin 数

将 10 个随机数分布到 6 个等间距 bin 内。

X = [2 3 5 7 11 13 17 19 23 29];
[N,edges] = histcounts(X,6)
N = 1×6

     2     2     2     2     1     1

edges = 1×7

         0    4.9000    9.8000   14.7000   19.6000   24.5000   29.4000

指定 bin 边界

将 1,000 个随机数分布到多个 bin 内。通过向量定义 bin 边界,其中第一个元素是第一个 bin 的左边界,而最后一个元素是最后一个 bin 的右边界。

X = randn(1000,1);
edges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5];
N = histcounts(X,edges)
N = 1×10

     0    24   149   142   195   200   154   111    25     0

归一化的 bin 计数

将小于 100 的所有质数分布到多个 bin 内。将 'Normalization' 指定为 'probability' 以对 bin 计数进行归一化,从而 sum(N) 为 1。即,每个 bin 计数代表观测值属于该 bin 的可能性。

X = primes(100);
[N,edges] = histcounts(X, 'Normalization', 'probability')
N = 1×4

    0.4000    0.2800    0.2800    0.0400

edges = 1×5

     0    30    60    90   120

确定 bin 放置

将介于 -5 和 5 之间的 100 个随机整数分布到多个 bin 内,并将 'BinMethod' 指定为 'integers' 以使用以整数为中心的单位宽度 bin。指定 histcounts 的第三个输出以返回代表数据 bin 索引的向量。

X = randi([-5,5],100,1);
[N,edges,bin] = histcounts(X,'BinMethod','integers');

通过计算数字 3 在 bin 索引向量 bin 中的出现次数求第三个 bin 的 bin 计数。结果与 N(3) 相同。

count = nnz(bin==3)
count = 8

分类 bin 计数

创建一个表示投票的分类向量。该向量中的类别是 'yes''no' 或 'undecided'

A = [0 0 1 1 1 0 0 0 0 NaN NaN 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1];
C = categorical(A,[1 0 NaN],{'yes','no','undecided'})
C = 1x27 categorical
     no      no      yes      yes      yes      no      no      no      no      undecided      undecided      yes      no      no      no      yes      no      yes      no      yes      no      no      no      yes      yes      yes      yes 

确定每个类别中的元素数量。

[N,Categories] = histcounts(C)
N = 1×3

    11    14     2

Categories = 1x3 cell
    {'yes'}    {'no'}    {'undecided'}

binscatter——分 bin 散点图

函数说明

binscatter(x,y) 

显示向量 x 和 y 的分 bin 散点图。分 bin 散点图将数据空间分成多个矩形 bin,并用不同颜色显示每个 bin 中的数据点数。放大绘图时,bin 的尺寸会自动调整,以显示更清晰的分辨率。

binscatter(x,y,N) 

指定要使用的 bin 数。N 可以是标量或二元素向量 [Nx Ny]。如果 N 是标量,则 Nx 和 Ny 都设置为标量值。每个维度中的最大 bin 数为 250。

举例

向量的分 bin 散点图

在 x 和 y 维上生成随机数,并创建分 bin 散点图。binscatter 函数会自动选择合适的 bin 数量,以便涵盖数据中的值范围。

x = randn(1e6,1);
y = 2*x + randn(1e6,1);
binscatter(x,y)

指定 bin 数

绘制包含 10,000 个随机数的分 bin 散点图,这些随机数划分到 x 维的 30 个 bin 和 y 维的 10 个 bin 中。

rng default % for reproducibility
x = randn(1e4,1);
y = randn(1e4,1);
h = binscatter(x,y,[30 10]);

 求 bin 计数。结果是一个矩阵,其左上方的元素对应于绘图中左下方的 bin 计数。x 维上的 bin 对应于矩阵行,y 维上的 bin 对应于矩阵列。

counts = h.Values;

更改分 bin 散点图的颜色图

创建一些随机数据点的分 bin 散点图。

x = randn(1e5,1);
y = randn(1e5,1);
binscatter(x,y)

默认颜色图范围从浅色(小值)到深色(大值)。改用以深色表示小值的颜色图更容易发现离群值。

可以使用 colormap 函数更改绘图中的颜色。使用 gca 传入当前坐标区句柄。

colormap(gca,'parula')

 

clc
clear all
close all
a = randn(1e6,1);
b = randn(1e6,1);
subplot(2,2,1)
b1 = binscatter(a,b);
axes2 = subplot(2,2,2);
b2 = binscatter(a,b);
colormap(axes2,'parula');
axes3 = subplot(2,2,3);
b3 = binscatter(a,b);
colormap(axes3,'jet');
axes4 = subplot(2,2,4);
b4 = binscatter(a,b);
colormap(axes4,'hot');

更多推荐

(二十八)大数据实战——Flume数据采集之kafka数据生产与消费集成案例

前言本节内容我们主要介绍一下flume数据采集和kafka消息中间键的整合。通过flume监听nc端口的数据,将数据发送到kafka消息的first主题中,然后在通过flume消费kafka中的主题消息,将消费到的消息打印到控制台上。集成使用flume作为kafka的生产者和消费者。关于nc工具、flume以及kafk

transformer系列2---transformer架构详细解析

transformer详细解析Encoder1输入1.1Embedding词嵌入1.1.1Embedding定义1.1.2几种编码方式对比1.1.3实现代码1.2位置编码1.2.1使用位置编码原因1.2.2位置编码方式1.2.3位置编码代码2注意力Attention2.1自注意力self-attention2.1.1Q

Android11 适配

一、修改targetSdkVersion为30将build.gradle的目标版本targetSdkVersion修改为30(Android11)targetSdkVersion30Android11的改变改变主要影响以Adnroid11为目标版本的应用(targetSdkVersion>=30才有影响),和所有应用在

《向量数据库指南》——Milvus Cloud当初为什么选择向量数据库这个赛道呢?

我们公司专注于向量数据库大约可以追溯到2018年左右。当时,向量数据库的概念并不广泛。我们的CEO力排众议,认为这个领域有巨大潜力,因为这与我们的愿景高度契合。我们的公司定位是构建一个能够在云上处理非结构化数据的基础设施产品。经过大量调研,我们意识到向量检索可能是未来处理非结构化数据语义和信息的关键。另外一个重要的因素

关于阻抗不连续的原因

1、连线中的分支结构信号传输到分支结构处,表现出的是两条电路并联的效果,会导致阻抗的不连续问题。典型的就是菊花链结构。2、参考平面的宽度一般情况下参考平面都是很宽且连续的,但有的时候,参考平面会被反焊盘给掏空,这时就有可能会出现参考平面的宽度变化的情况。(a是参考平面左右两侧都被掏空,b是左侧被掏空)。需要注意,参考平

可视化工具Datart踩(避)坑指南(3)——筛选框的疑惑

作为目前国内开源版本最好用的可视化工具,Datart无疑是低成本高效率可供二开的可视化神兵利器。当然,免费的必然要付出一些踩坑的代价。本篇我们来讲一讲可视化工具Datart踩(避)坑指南(3)之筛选框的疑惑版本:1.0.0-rc.2Release筛选框,作为BI可视化工具中的重要交互组件,是可视化工具的手。本篇踩到了关

什么是模型混合模式?

上一篇文章介绍了GLTF编辑器支持一些常见材质纹理的修改以及模型混合模式的概念,本文将具体讲解下模型的混合模式以及各种混合模式之间的不同和使用场景。1、什么是模型的混合模式。"模型混合"是指将不同的模型或元素组合在一起,形成一个整体或复合物的过程。模型混合可以用于各种应用,包括计算机图形学、动画制作、虚拟现实和特效制作

计算机未来-发展趋势和未来方向

计算机未来-发展趋势和未来方向1.人工智能与机器学习近年来,人工智能和机器学习成为了科技领域的热门话题。在CSDN上,与人工智能和机器学习相关的文章和讨论也是不胜枚举。从深度学习到自然语言处理,从计算机视觉到强化学习,这些技术正在不断地改变我们的生活和工作方式。机器学习作为人工智能的一个重要分支,其核心技术包括监督学习

Android使用Jetpack WindowManager来开发可折叠设备的探索

一、背景我们在Google开发者大会上,看到JetpackWindowManager和WindowSizeClass这些技术,如下图。那这里不得不说折叠屏手机了在其中一个显示区域中运行一个应用。同时运行两个应用,各位于一个显示区域中(在multi-window模式下)。可折叠设备还支持不同的折叠状态。折叠状态可用来以不

特殊时间(蓝桥杯)

特殊时间问题描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。2022年2月22日22:20是一个很有意义的时间,年份为2022,由3个2和1个0组成,如果将月和日写成4位,为0222,也是由3个2和1个0组成,如果将时间中的时和分写成4位,还是由3个2和1个0组成。小蓝对这样的时间很感兴趣,

【 Ubuntu】systemd服务自启

要在Ubuntu启动后执行一个守护脚本,您可以使用Shell脚本编写一个systemd服务单元。systemd是Ubuntu中常用的服务管理工具,可以在系统启动时自动启动和管理服务。下面是一个示例的守护脚本和systemd服务单元的步骤:创建守护脚本:创建一个Shell脚本文件,例如mydaemon.sh,并在其中编写

热文推荐