Graph 八度箱线图

Graph 八度箱线图,graph,octave,boxplot,Graph,Octave,Boxplot,我正在尝试使用此示例数据的boxplot数据创建一个boxplot 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.9880

我正在尝试使用此示例数据的boxplot数据创建一个boxplot

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
我希望得到一个有四列的图,但是输出目前只显示两列。这是输出

我在这里尝试了遵循文档

但我仍然很难得到想要的结果

请帮助我使用正确的语法,以获得正确的八度箱线图


谢谢,你的期望是错误的。为什么箱线图会假定第一列是组号。boxplot的文档说明:

数据是一个矩阵,每个数据集有一列,或者数据是一个单元向量,每个数据集有一个单元

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

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

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将按照您的预期工作