简体   繁体   中英

How to make a confusion matrix plot with percentage values in Matlab

I would like to plot a 2x2 confusion matrix in Matlab in such a way that the plot would have percentage values in each of the grid boxes in this way:

在此处输入图片说明

In summary I'm asking for how to make a plot like the one above when you're given the percentage values in a matrix:

V = [0.15, 0.30; 0.05, 0.50]

Is it possible to make a plot like that in Matlab? I did think of drawing the vertical lines and then plotting some text into spesific coordinates, but is this the only way to do this?

Let me show you how you could do it. I did it just for fun!

You can change the size of your input matrix as you wish.

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

在此处输入图片说明

With Matlab 2014b and the new graphic engine, smoother option:

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM