繁体   English   中英

八度中的箱线图

[英]Boxplot in octave

我正在尝试使用boxplot(data)创建此示例数据的boxplot(data)

1,0.3074855004
1,0.5342907151
1,0.1243014226
1,0.8373050862
1,0.2964970712
2,0.2753391378
2,0.0662903741
2,0.7435585174
2,0.141665858
2,0.8710871406
3,0.683215396
3,0.9968826184
3,0.8009274979
3,0.6164554236
3,0.9880523647
4,0.6854059871
4,0.4828904583
4,0.6001796951
4,0.3790802876
4,0.5728325425

我希望得到一个包含四列的图形,但是当前输出仅显示两列。 这是输出

输出

我尝试按照这里的文档

http://octave.sourceforge.net/statistics/function/boxplot.html

但我仍然无法获得理想的结果。

请以正确的语法帮助我,以获取正确的八度倍数箱线图。

谢谢,

您的期望是错误的。 为什么boxplot()假定第一列是组号。 boxplot()的文档说:

DATA是每个数据集只有一列的矩阵,或者data是每个数据集只有一个像元的像元向量。

您的数据不是上述任何数据。

另外,为什么还要通过这样设置来浪费内存呢? 为什么会有一列仅用于存储组号? 由于每个组似乎具有相同数量的值,因此您可以将第二列重塑为矩阵,每组一个列:

octave> reshape (data(:,2), 5, 4)
ans =

   0.307486   0.275339   0.683215   0.685406
   0.534291   0.066290   0.996883   0.482890
   0.124301   0.743559   0.800927   0.600180
   0.837305   0.141666   0.616455   0.379080
   0.296497   0.871087   0.988052   0.572833

或者如果每个组具有不同数量的值,请使用单元格数组:

octave> accumarray (data(:,1), data(:,2), [], @(x) {x})
ans = 
{
  [1,1] =

     0.30749
     0.53429
     0.12430
     0.83731
     0.29650

  [2,1] =

     0.275339
     0.066290
     0.743559
     0.141666
     0.871087

  [3,1] =

     0.68322
     0.99688
     0.80093
     0.61646
     0.98805

  [4,1] =

     0.68541
     0.48289
     0.60018
     0.37908
     0.57283

}

一旦您的数据是明智的格式, boxplot()将按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM