如何绘制分组条形图?
How can I draw a grouped bar plot?
我已经计算了该算法的精度、召回率和 f 度量。我想为这三个值绘制条形图。 Precision = 1*256,recall = 1*256,F-measure = 1*256。
我得到这样的数字:
但是,我想像这样绘制条形图:
我是 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 组成的 text file。
提前致谢。
编辑1:
我们总共有 12 个包含 256 个值的向量,但我们必须计算平均值或中值或任何值。最后,你只需要计算从 P1 到 P_1.Thank 的一个值,你这么多 @EBH
你快完成了,但是你有 2 个错误。
- 你从 Precision(P1,P2...)的整个向量和其他测量值构建
data
,而 bar
你只输入要绘制的值。 bar
绘图的所有值都是标量 like here,因此 you 必须在使用 bar
绘图之前进行所有统计。在你的情况下,我相信你想取每个变量的平均值,所以 P_1 = mean(P1)
和 R_1 = mean(R1)
等。对于你的所有变量。最终,您将从 12 个向量中获得 12 个标量。
- 然后,您需要在矩阵中正确排列这些值。每行代表一个组,每列代表一种颜色。基本上,您做了一些接近的事情,但弄乱了逗号和换行符。
您需要做的就是正确构建 data
(当其中的所有变量都是标量时):
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];
请注意,我删除了所有逗号,因为在 Matlab 中,您可以使用 ,
和 ;
指定矩阵的形状,或者使用空格和换行符。 If you mix both you get in trouble...
所以 data
是 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');
我已经计算了该算法的精度、召回率和 f 度量。我想为这三个值绘制条形图。 Precision = 1*256,recall = 1*256,F-measure = 1*256。
我得到这样的数字:
但是,我想像这样绘制条形图:
我是 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 组成的 text file。
提前致谢。
编辑1: 我们总共有 12 个包含 256 个值的向量,但我们必须计算平均值或中值或任何值。最后,你只需要计算从 P1 到 P_1.Thank 的一个值,你这么多 @EBH
你快完成了,但是你有 2 个错误。
- 你从 Precision(P1,P2...)的整个向量和其他测量值构建
data
,而bar
你只输入要绘制的值。bar
绘图的所有值都是标量 like here,因此 you 必须在使用bar
绘图之前进行所有统计。在你的情况下,我相信你想取每个变量的平均值,所以P_1 = mean(P1)
和R_1 = mean(R1)
等。对于你的所有变量。最终,您将从 12 个向量中获得 12 个标量。 - 然后,您需要在矩阵中正确排列这些值。每行代表一个组,每列代表一种颜色。基本上,您做了一些接近的事情,但弄乱了逗号和换行符。
您需要做的就是正确构建 data
(当其中的所有变量都是标量时):
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];
请注意,我删除了所有逗号,因为在 Matlab 中,您可以使用 ,
和 ;
指定矩阵的形状,或者使用空格和换行符。 If you mix both you get in trouble...
所以 data
是 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');