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)
相关推荐
StayInLove2 分钟前
G1垃圾回收器日志详解
java·开发语言
无尽的大道10 分钟前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
爱吃生蚝的于勒13 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
binishuaio22 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE24 分钟前
【Java SE】StringBuffer
java·开发语言
就是有点傻28 分钟前
WPF中的依赖属性
开发语言·wpf
洋24037 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙38 分钟前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点40 分钟前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式
NoneCoder1 小时前
Java企业级开发系列(1)
java·开发语言·spring·团队开发·开发