MATLAB数据统计和分析:绘制统计图表

绘制统计图表

在概率和统计方法中,经常需要绘制图表从而直观地展现数据。下面简介几种常用统计图表绘图函数.



1. 正整数频率表

绘制正整数频率表的函数为 t a b u l a t e tabulate .

table = tabulate(X)

X X 为正整数构成的向量,返回三列:
首列包含 X X 的值,第二列为这些值的个数,第三列为这些值的频率。

[例]

>> A = [1 1 4 5 1 4 1 9 1 9 8 1 0];
>> tabulate(A)
  Value    Count   Percent
      0        1      7.69%
      1        6     46.15%
      4        2     15.38%
      5        1      7.69%
      8        1      7.69%
      9        2     15.38%
>> 

2. 经验累积分布函数图形

绘制经验累积分布函数图形的函数为 c d f p l o t cdfplot .

1. cdfplot(X)
2. h = cdfplot(X)
3. [h,stats] = cdfplot(X)
  1. 作样本 X X 的累积分布函数图形
  2. h h 表示曲线的环柄。
  3. s t a t s stats 表示样本的一些特征。

[例]

>> X = normrnd(0,1,114,1);
>> [h,stats] = cdfplot(X)
h = 

  Line with properties:

              Color: [0 0.4470 0.7410]
          LineStyle: '-'
          LineWidth: 0.5000
             Marker: 'none'
         MarkerSize: 6
    MarkerFaceColor: 'none'
              XData: [1×230 double]
              YData: [1×230 double]
              ZData: [1×0 double]

  Show all properties


stats = 

  struct with fields:

       min: -2.9443                 %样本最小值
       max: 3.5784                  %样本最大值
      mean: 0.1015                  %样本均值
    median: 0.0930                  %样本中间值
       std: 1.1459                  %样本标准差

经验累积分布函数图像如下图所示:
Fig.0


3. 最小二乘拟合曲线

绘制最小二乘拟合曲线的函数为 l s l i n e lsline .

h = lsline

h h 为直线的句柄。

[例]

>> x=linspace(0,10);
>> y=x+rand(size(x));
>> scatter(x,y)
>> h=lsline;
>> set(h,'LineWidth',3,'LineStyle','--','Color',[1 0 1])

运行后得到最小二乘拟合直线如下图所示:
Fig.1


4. 正态分布概率图形

绘制正态分布概率图形的函数是 n o r m p l o t normplot .

1. normplot(X)
2. h = normplot(X)
  1. X X 为向量,则显示正态分布概率图形;若 X X 为矩阵,则显示每一列的正态分布概率图形。
  2. 返回绘图直线的句柄。

[例]

>> X = [1,1,4;5,1,4;1,9,1;9,8,1]

X =

     1     1     4
     5     1     4
     1     9     1
     9     8     1

>> h = normplot(X)

h = 

  9×1 Line array:

  Line
  Line
  Line
  Line
  Line
  Line
  Line
  Line
  Line

>> normplot(X)

所得正态分布概率图形如下图所示:
Fig.2


5. Weibull概率图形

绘制 Weibull 概率图形的函数为 w e i b p l o t weibplot .

1. weibplot(X)
2. h = weibplot(X)
  1. X X 为向量,则显示 Weibull 概率图形;若 X X 为矩阵,则显示每一列的 Weibull 概率图形。
  2. 返回绘图直线的句柄。

[例]

>> X = [1,1,4;5,1,4;1,9,1;9,8,1]

X =

     1     1     4
     5     1     4
     1     9     1
     9     8     1
weibplot(X)

运行后得到 Weibull 概率图形如下图所示:

(然而本飞舞的MATLAB上并没有这个函数,哭哭,,,)


6. 样本数据盒图

绘制样本数据盒图的函数是 b o x p l o t boxplot .

1. boxplot(X)
2. boxplot(X,notch)
3. boxplot(X,notch,'sym')
4. boxplot(X,notch,'sym',vert)
5. boxplot(X,notch,'sym',vert,whis)
  1. 产生矩阵 X X 的每一列的盒图和“须”图.
  2. n o t c h = 1 notch = 1 时产生凹盒图, n o t c h = 0 notch = 0 时产生矩箱图.
  3. s y m sym 表示图形符号,默认为 “+”.
  4. v e r t = 0 vert = 0 时生成水平盒图, v e r t = 1 vert = 1 时生成竖直盒图,默认值为1.
  5. w h i s whis 定义“须”图的长度,默认值为1.5.

[例]

>> x1 = normrnd(5,1,100,1);
>> x2 = normrnd(6,1,100,1);
>> x = [x1,x2];
>> boxplot(x,1,'g--',1,0)

运行后所得盒图如下图所示:
Fig.4


7. 为图形增加参考线

为当前图形增加一条参考线需调用函数 r e f l i n e refline .

1. refline(slope,intercept)
2. refline(slope)
  1. s l o p e slope 表示直线斜率, i n t e r c e p t intercept 表示直线截距.
  2. s l o p e = [ a , b ] slope = [a,b] :在图中绘制一条直线: y = a x + b y = ax + b .

[例]

>> y = [1.1 4.5 1.4 1.9 1.9 8.1 0.3 6.4 8.9 3.1 ]';
>> plot(y,'+')
>> refline(0,3.64)

运行后所得图形如下图所示:
Fig.5


8. 为图形增加多项式曲线

在当前图形上绘制一条多项式曲线的函数是 r e f c u r v e refcurve .

h = refcurve(p)

在图中加入一条多项式曲线: h h 为曲线的环柄, p p 为多项式系数向量: p = [ p 1 , p 2 , , p n ] p = [p_{1},p_{2},\cdots,p_{n}] ,其中 p 1 p_{1} 为最高幂次项系数。

[例]

>> h = [114 514 191 981 036 436 419 191 981 145 141 919 810];
>> plot(h,'--')
>> refcurve([-5.14 114 0])

运行后所得多项式曲线图形如下图所示:
Fig.6


9. 绘制样本概率图形

绘制样本概率图形的函数为 c a p a p l o t capaplot .

p = capaplot(data,specs)

返回来自于估计分布的随机变量落在指定范围内的概率。 d a t a data 为所给的样本数据, s p e c s specs 指定范围, p p 表示在指定范围内的概率。

[例]

>> h = [114 514 191 981 036 436 419 191 981 145 141 919 810];
>> s = [364,514];
>> p = capaplot(h,s)
p =

    0.1665

>> 

运行后所得图形如下图所示.
Fig.7


10. 绘制附加有正态密度曲线的直方图

绘制附加有正态密度分布曲线的直方图的函数是 h i s f i t hisfit .

1. hisfit(data)
2. hisfit(data,nbins)
  1. d a t a data 为向量,函数返回直方图和正态曲线。
  2. n b i n s nbins 为指定 b a r bar 个数的量。

[例]

>> r = normrnd(10,1,100,1);
>> histfit(r)

运行后所得附有正态密度分布曲线直方图如下图所示.
Fig.8


11. 在指定的界线间绘制正态密度曲线

在指定界线间绘制正态密度曲线的函数是 n o r m s p e c normspec .

p = normspec(specs,mu,sigma)

s p e c s specs 指定界线, m u mu s i g m a sigma 为正态分布的参数, p p 为样本落在上、下界之间的概率.

[例]

>> normspec([10 Inf],11.4,5.14)

ans =

    0.6073

>> 

运行后所得在指定界限间绘制正态密度曲线如下图所示.
Fig.9

发布了32 篇原创文章 · 获赞 14 · 访问量 6363

猜你喜欢

转载自blog.csdn.net/u010186354/article/details/104100303