我想在 Matlab 中绘制一个 2x2 混淆矩阵,以便该图在每个网格框中都有百分比值:
总之,当您给出矩阵中的百分比值时,我询问如何制作像上面这样的图:
V = [0.15, 0.30; 0.05, 0.50]
是否可以在 Matlab 中绘制这样的图?我确实考虑过绘制垂直线,然后将一些文本绘制到特定的坐标中,但这是唯一的方法吗?
最佳答案
让我向您展示如何做到这一点。我这样做只是为了好玩!
您可以根据需要更改输入矩阵的大小。
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
使用 Matlab 2014b 和新的图形引擎,更流畅的选项:
关于matlab - 如何在 Matlab 中制作带有百分比值的混淆矩阵图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28762503/