MATLAB绘图:4.统计图表

MATLAB绘图之统计图表

一.散点图

  • 适用情形:通过散点的疏密程度变化趋势表示变量间的关系
  • 表示因变量随自变量变化的大致趋势,常用于显示和比较数值
  • 回归分析中,可用于描述数据点的分布
  1. scatter(x,y)
    在向量x和y指定的位置创建一个包含圆形的散点图;该类型的图形也称为气泡图
matlab 复制代码
x=linspace(0,3*pi,200);
y=cos(x)+rand(1,200);
scatter(x,y)
  1. scatter(x,y,sz)
    指定散点(圆圈)的大小;要绘制大小相等 的圆圈,要将sz指定为标量 ;要绘制不同大小 的圆圈,可以将sz指定为向量,长度为x和y的长度
  2. scatter(x,y,sz,c)
    指定圆圈的颜色,要以相同的颜色 绘制所有圆圈,请将c指定为颜色名称或RGB三元组;要使用不同的颜色,将c指定为向量或由RGB三元组组成的三列矩阵
  3. scatter(____,'filled')
    填充图形,可以将'filled'选项与前面语法中的任何输入参数组合一起使用

例子:x为0到3pi之间的200个等间距值。创建y为带随机干扰的余弦值。然后创建散点图

matlab 复制代码
x=linspace(0,3*pi,200);
y=cos(x)+rand(1,200);
sz=linspace(1,10,200);
%指定散点大小
scatter(x,y,sz)

%指定散点颜色
c=linspace(1,10,length(x) );
scatter(x,y,[],c)%不指定圆圈大小,默认为1

二.直方图

  • 适用情形:由一系列高度不等的纵向条纹或线段表示数据的分布情况、判断数据稳定性,属于统计报告图;也可归一化,显示相对频率;
  1. histogram(x)
    • 基于x创建直方图
    • histogram函数使用自动bin划分算法,返回均匀宽度的bin,这些bin可涵盖x中的元素范围并显示分布的基本形状。
    • histogram将bin显示为矩形,这样每个矩形的高度就是该bin中元素的个数
    • bin代表了直方图的属性

例子:生成10000个随机数并创建直方图

histogram函数自动选择合适的bin数量,以便涵盖x中的值范围并显示基本分布的形状

matlab 复制代码
x=randn(10000,1);
%randn返回一个标准正态分布中得到的随机数
h=histogram(x)
  1. histogram(x,nbins)
    • 使用nbins个bin创建直方图
  2. histogram(x,edges)
    • 将x划分到由向量edges指定的边缘组成的bin中。每个bin都包含左边界,但不包含右边界,除了最后一个bin包含两个边界
  3. histogram('BinEdges',"BinCounts",counts) histogram©
    • 手动指定bin边界和关联的bin计数。histogram绘制指定的bin计数,而不执行任何数据的bin划分。(其中c为分类数组)通过c中的每个类别绘制一个条形来绘制直方图
      (bin划分算法,自己了解)

直方图属性 :略

例子:生成5000个均值为5、标准差2的正态分布随机数,并创建直方图,在Normalization设为pdf的情况下绘制直方图可生成概率密度函数的估计值

matlab 复制代码
x=2*randn(5000,1)+5;
histogram(x,[0,1,2,3,4,5,6,7,8,9,10],'Normalization','pdf')

%绘制概率密度函数
hold on
y=-5:0.1:15;
mu=5;
sigma=2;
f=exp(-(y-mu).^2./(2*sigma^2))./(sqrt(2*pi)*sigma);
plot(y,f,'LineWidth',2)

三.其他图表

  • bar(Y)%条形图
  • stairs(Y)%阶梯图
  • polarhistogram(Y)%极坐标直方图

四.圆饼图

  • 适用情形:观察各部分分布,比较各部分占比
  1. pie(X)
    • 使用x中的数据创建饼图,饼图的每个扇区代表x中的一个元素
    • 如果sum(x)=1,x中的值直接指定饼图扇区的面积。如果sum(x)<1,pie仅绘制一部分饼图
    • 如果sum(x)>1,则pie通过x/sum(x)对值进行归一化,以确定饼图的每个扇区的面积
    • 如果x为categorical数据类型,则扇区对应于类别。每个扇区的面积是类别中的元素数除以x中得到元素数的结果
  2. pie(X,explode)
    • 将扇区从饼图偏移一定位置。explode是一个由与x对应的零值和非零值组成的向量或矩阵。pie函数仅将对应于explode中的非零元素的扇区偏移一定位置。
    • 如果x为categorical数据类型,则explode可以是由对应于类别的零值和非零值组成的向量,或者是由要偏移的类别名称组成的元胞数组。

例子:

matlab 复制代码
x=[13,38,23,44,22]
pie(x);
%按逆时针排列
explode=[0,1,0,1,0]
%将对应1的分离开来
pie(x,explode)

绘制子图,比较两个饼图

matlab 复制代码
y2010=[50,0,100,97];
y2011=[70,22,93,120];
labels={'A','B','C','D'};
t=tiledlayout(2,1);
ax1=nexttile;
pie(ax1,y2010)
legend(labels)
title('2010')
ax2=nexttile;
pie(ax2,y2011)
legend(labels)
title('2011')

五.误差条图

  • 适用情形:常用于统计和科学数据,显示潜在的误差或相对于系列中每个数据标志1不确定度
  1. errorbar(y,err)
    • 创建y中数据的线图,并在每个数据点处绘制一个垂直误差条。err中的值确定数据点上方和下方的每个误差条的长度,因此,总误差条长度是err值的两倍
  2. errorbar(x,y,err)
    • 绘制y对x的图,并在每个数据点处绘制一个垂直误差条
  3. errorbar(x,y,neg,pos)
    • 在每个数据点处绘制一个垂直误差条,其中neg确定数据点下方的长度,pos确定数据点上方的长度

(其他自己查询)

例子:

matlab 复制代码
x=1:10:100;
y=[20 30 45 40 60 65 80 75 95 90];
err=[5 4 3 2 1 2 3 4 5 6];
errorbar(x,y,err,'-s','MarkerSize',10,'MarkerEdgeColor','red','MarkerFaceColor','red')

其余了解的图

  1. 针状图:stem(x,y)
  2. 区域图:area(x,y)
  3. 分bin散点图:binscatter(x,y)
相关推荐
lvbu_2024war0117 分钟前
MATLAB语言的网络编程
开发语言·后端·golang
single59429 分钟前
【c++笔试强训】(第四十五篇)
java·开发语言·数据结构·c++·算法
游客52031 分钟前
自动化办公-合并多个excel
开发语言·python·自动化·excel
Cshaosun41 分钟前
js版本之ES6特性简述【Proxy、Reflect、Iterator、Generator】(五)
开发语言·javascript·es6
凡人的AI工具箱1 小时前
每天40分玩转Django:Django部署概述
开发语言·数据库·后端·python·django
SomeB1oody1 小时前
【Rust自学】7.2. 路径(Path)Pt.1:相对路径、绝对路径与pub关键字
开发语言·后端·rust
SomeB1oody1 小时前
【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
开发语言·后端·rust
魔法工坊2 小时前
只谈C++11新特性 - 删除函数
java·开发语言·c++
Bony-2 小时前
Go语言反射从入门到进阶
开发语言·后端·golang
GesLuck2 小时前
C#开发实例1—彩票选号
开发语言·c#