我想在Matlab中绘制一个2x2混淆矩阵,使得绘图在每个网格框中都有这样的百分比值:
总之,当你在矩阵中给出百分比值时,我正在询问如何制作类似上图的情节:
V = [0.15,0.30; 0.05,0.50]
是否有可能在Matlab中制作这样的情节?我确实想过绘制垂直线然后将一些文本绘制成特定坐标,但这是唯一的方法吗?
答案 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
使用Matlab 2014b和新的图形引擎,更顺畅的选择: