# How plot a matrix for Naive Bayes classifier?

17 views (last 30 days)
Bajdar Nour on 20 Sep 2018
Commented: Bajdar Nour on 22 Sep 2018
I want to illustrate the matrix as shown in the picture this is a part of the code
fh = figure('Name', 'Confusion matrix', ...
'NumberTitle', 'off');
plotmat(cMat1, 'k', 'k', 15);
title(['Classification rate: ' num2str(classificationrate) '% for Naive Bayes Classifier'], 'FontSize', 14);
but it says Undefined function or variable 'plotmat'.
does has

Brendan Hamm on 20 Sep 2018
Try heatmap or imagesc.
Bajdar Nour on 21 Sep 2018
Dear @Brendan, but when I use heatmap it gives this
Cannot find an exact (case-sensitive) match for 'heatmap'
The closest match is: HeatMap in C:\Program Files\MATLAB\MATLAB Production Server\R2015a\toolbox\bioinfo\microarray\@HeatMap\HeatMap.m

Brendan Hamm on 21 Sep 2018
The heatmap function was introduced in 2017a. The imagesc function will work though. To display the numeric counts you will require a little more work with the text function requiring the location of the text and the x-y data points where the text should appear.
A = randi([0,20],5,5);
imagesc(A);
% Find the x, y locations for the text
x = 1:size(A,2);
y = 1:size(A,1);
% Grid of X,Y locations:
[X,Y] = meshgrid(x,y);
% Convert numbers in matrix to cell array of chars
c = cellfun(@num2str,num2cell(A),'UniformOutput',false);
% Palce text labels at X,Y lcoations:
text(X(:),Y(:),c(:),'HorizontalAlignment','center');
colorbar
This is basically what heatmap does by default, so upgrading makes things quite a bit easier.

#### 1 Comment

Bajdar Nour on 22 Sep 2018
thanks, I solved my problem