Matlab 如何绘制分组条形图?
我已经计算了该算法的精度、召回率和f度量。我想画三个值的条形图。精度=1*256,召回率=1*256,F测量值=1*256 我得到的数据如下: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'); 但
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
你就快到了,但是你有两个错误
数据,而使用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的一个值。请看我对答案的编辑,希望它能为你澄清一些事情。