如何在Matlab中制作具有百分比值的混淆矩阵图

时间:2015-02-27 10:11:07

标签: matlab plot

我想在Matlab中绘制一个2x2混淆矩阵,使得绘图在每个网格框中都有这样的百分比值:

enter image description here

总之,当你在矩阵中给出百分比值时,我正在询问如何制作类似上图的情节:

  

V = [0.15,0.30; 0.05,0.50]

是否有可能在Matlab中制作这样的情节?我确实想过绘制垂直线然后将一些文本绘制成特定坐标,但这是唯一的方法吗?

1 个答案:

答案 0 :(得分:3)

让我告诉你如何做到这一点。我这样做只是为了好玩!

您可以根据需要更改输入矩阵的大小。

A=[0.3 0.2 ; 0.1 0.7];

sA=size(A);
Aplot=rot90(A,3);
figure;hold on


rectangle('Position',[0,0,sA(2),sA(1)],'Facecolor',[1 1 1],'edgecolor','none')

for ii=0:sA(1)
    plot([0 sA(2)], [ii ii],'k','Linewidth',3)
end
for ii=0:sA(2)
    plot([ii ii],[0 sA(1)],'k','Linewidth',3)
end
for ii=1:sA(2)
    for jj=1:sA(1)
    text((ii-1)+0.35,(jj-1)+0.5,strcat(num2str(Aplot(ii,jj)*100),' %'),'fontsize',30)
    end
end


margin=0.05;
axis([0-margin sA(2)+margin 0-margin sA(1)+margin])
axis off

enter image description here

使用Matlab 2014b和新的图形引擎,更顺畅的选择:

enter image description here