Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何绘制分组条形图?_Matlab_Plot_Bar Chart_Matlab Figure - Fatal编程技术网

Matlab 如何绘制分组条形图?

Matlab 如何绘制分组条形图?,matlab,plot,bar-chart,matlab-figure,Matlab,Plot,Bar Chart,Matlab Figure,我已经计算了该算法的精度、召回率和f度量。我想画三个值的条形图。精度=1*256,召回率=1*256,F测量值=1*256 我得到的数据如下: data = rand(4,3); b = bar(data); set(b,{'FaceColor'},{'b';'r';'y'}); grid on; set(gca,'XTickLabel',{'DEMO1','DEMO2','DEMO3','DEMO4'}); legend('Precision','Recall','F_\beta'); 但

我已经计算了该算法的精度、召回率和f度量。我想画三个值的条形图。精度=1*256,召回率=1*256,F测量值=1*256

我得到的数据如下:

data = rand(4,3);
b = bar(data);
set(b,{'FaceColor'},{'b';'r';'y'});
grid on;
set(gca,'XTickLabel',{'DEMO1','DEMO2','DEMO3','DEMO4'});
legend('Precision','Recall','F_\beta');

但是,我想画这样的条形图:

data = rand(4,3);
b = bar(data);
set(b,{'FaceColor'},{'b';'r';'y'});
grid on;
set(gca,'XTickLabel',{'DEMO1','DEMO2','DEMO3','DEMO4'});
legend('Precision','Recall','F_\beta');

我对Matlab编程非常陌生,我已经尝试过以下代码

data = [P_1,R_1,f_1
    P_2,R_2,f_2
    P_3,R_3,f_3
    P_4,R_4,f_4];
b=bar(data);
set(b,{'FaceColor'},{'b';'r';'y'});
grid on;
set(gca,'XTickLabel',{'DEMO1','DEMO2','DEMO3','DEMO4'});
legend('Precision','Recall','F_\beta');
请帮我解决这个问题

我正在连接由P1、R1和F1组成的

提前谢谢

编辑1:
我们总共有12个256个值的向量,但我们必须计算平均值、中值或任何值。最后,你只需要计算一个从P1到P1的值。非常感谢@EBH

你就快到了,但是你有两个错误

  • 您可以从整个精度向量(P1、P2…)和其他测量值构建
    数据,而使用
    bar
    只输入要绘制的值。
    bar
    打印的所有值都是标量,因此在使用
    bar
    进行打印之前,必须进行所有统计。在你的例子中,我相信你想取每个变量的平均值,因此
    P_1=mean(P1)
    R_1=mean(R1)
    等。最终,你将从12个向量中得到12个标量
  • 然后,您需要在矩阵中正确排列这些值。每行代表一组,每列代表一种颜色。基本上,你做了一些接近但弄乱了逗号和线刹车
  • 您需要做的就是正确地构建
    数据
    (当其中的所有变量都是标量时):

    请注意,我删除了所有逗号,因为在Matlab中,您可以使用
    进行指定矩阵的形状,或者使用空格和换行符

    因此,
    数据
    是4乘3,每行是一个演示,每列是一个度量。对于一些随机数据,它如下所示:

    data = rand(4,3);
    b = bar(data);
    set(b,{'FaceColor'},{'b';'r';'y'});
    grid on;
    set(gca,'XTickLabel',{'DEMO1','DEMO2','DEMO3','DEMO4'});
    legend('Precision','Recall','F_\beta');
    

    非常感谢您的回答,但我正在保留旧的条形图。我已附上包含p1、r1、f1的文本文件values@Azaad我看不到文件(链接不起作用),但这应该不超过12个值,您可以在问题中键入它们。正如我前面提到的p1、r1、f1包含1*256个值。我已经附上了文本文件。请点击文本文件link@Azaad好的,总共有12个256个值的向量,但是你想在条形图中看到什么呢?他们的意思是什么?它们的最大价值是什么?另一个统计数字?最后,你只需要计算从P1到P_1的一个值。请看我对答案的编辑,希望它能为你澄清一些事情。