MATLAB绘图之统计图表
一.散点图
- 适用情形:通过散点的疏密程度 和变化趋势表示变量间的关系
- 表示因变量随自变量变化的大致趋势,常用于显示和比较数值
- 回归分析中,可用于描述数据点的分布
- scatter(x,y)
在向量x和y指定的位置创建一个包含圆形的散点图;该类型的图形也称为气泡图
matlab
x=linspace(0,3*pi,200);
y=cos(x)+rand(1,200);
scatter(x,y)
- scatter(x,y,sz)
指定散点(圆圈)的大小;要绘制大小相等 的圆圈,要将sz指定为标量 ;要绘制不同大小 的圆圈,可以将sz指定为向量,长度为x和y的长度 - scatter(x,y,sz,c)
指定圆圈的颜色,要以相同的颜色 绘制所有圆圈,请将c指定为颜色名称或RGB三元组;要使用不同的颜色,将c指定为向量或由RGB三元组组成的三列矩阵 - 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
二.直方图
- 适用情形:由一系列高度不等的纵向条纹或线段表示数据的分布情况、判断数据稳定性,属于统计报告图;也可归一化,显示相对频率;
- 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)
- histogram(x,nbins)
- 使用nbins个bin创建直方图
- histogram(x,edges)
- 将x划分到由向量edges指定的边缘组成的bin中。每个bin都包含左边界,但不包含右边界,除了最后一个bin包含两个边界
- histogram('BinEdges',"BinCounts",counts) histogram©
- 手动指定bin边界和关联的bin计数。histogram绘制指定的bin计数,而不执行任何数据的bin划分。(其中c为分类数组)通过c中的每个类别绘制一个条形来绘制直方图
(bin划分算法,自己了解)
- 手动指定bin边界和关联的bin计数。histogram绘制指定的bin计数,而不执行任何数据的bin划分。(其中c为分类数组)通过c中的每个类别绘制一个条形来绘制直方图
直方图属性 :略
例子:生成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)%极坐标直方图
四.圆饼图
- 适用情形:观察各部分分布,比较各部分占比
- pie(X)
- 使用x中的数据创建饼图,饼图的每个扇区代表x中的一个元素
- 如果sum(x)=1,x中的值直接指定饼图扇区的面积。如果sum(x)<1,pie仅绘制一部分饼图
- 如果sum(x)>1,则pie通过x/sum(x)对值进行归一化,以确定饼图的每个扇区的面积
- 如果x为categorical数据类型,则扇区对应于类别。每个扇区的面积是类别中的元素数除以x中得到元素数的结果
- 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不确定度
- errorbar(y,err)
- 创建y中数据的线图,并在每个数据点处绘制一个垂直误差条。err中的值确定数据点上方和下方的每个误差条的长度,因此,总误差条长度是err值的两倍
- errorbar(x,y,err)
- 绘制y对x的图,并在每个数据点处绘制一个垂直误差条
- 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')
其余了解的图
- 针状图:stem(x,y)
- 区域图:area(x,y)
- 分bin散点图:binscatter(x,y)