Matlab繪制混淆矩陣


需求

假設你手上已經拿到了3×3的混淆矩陣如下:

需要繪制類似下面這種帶漸變色條的彩色混淆矩陣色圖:

實現

clear;
close all;
clc

% 混淆矩陣
mat = [
5,3,0;
2,3,1;
0,2,11
    ];
% 標簽
label = {'CAT','Dog','Rabbit'};

% 混淆矩陣主題顏色
% 可通過各種拾色器獲得rgb色值
maxcolor = [191,54,12]; % 最大值顏色
mincolor = [255,255,255]; % 最小值顏色

% 繪制坐標軸
m = length(mat);
imagesc(1:m,1:m,mat)
xticks(1:m)
xlabel('Predict class','fontsize',10.5)
xticklabels(label)
yticks(1:m)
ylabel('Actual class','fontsize',10.5)
yticklabels(label)

% 構造漸變色
mymap = [linspace(mincolor(1)/255,maxcolor(1)/255,64)',...
         linspace(mincolor(2)/255,maxcolor(2)/255,64)',...
         linspace(mincolor(3)/255,maxcolor(3)/255,64)'];
    
colormap(mymap)
colorbar()

% 色塊填充數字
for i = 1:m
    for j = 1:m
        text(i,j,num2str(mat(j,i)),...
            'horizontalAlignment','center',...
            'verticalAlignment','middle',...
            'fontname','Times New Roman',...
            'fontsize',10);
    end
end

% 圖像坐標軸等寬
ax = gca;
ax.FontName = 'Times New Roman';
set(gca,'box','on','xlim',[0.5,m+0.5],'ylim',[0.5,m+0.5]);
axis square

% 保存
saveas(gca,'m.png');

結果展示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM