How to plot square diagram
1 view (last 30 days)
Show older comments
Dear member, how to plot this figure in Matlab. Many thanks
Kind regards
0 Comments
Accepted Answer
Adam Danz
on 2 Oct 2019
Edited: Adam Danz
on 2 Oct 2019
Demo:
data = diag(randi(20,1,20)+40);
heatmap(data)
xlabel('predicted')
ylabel('actual')
%Create colormap that looks like the image in the question
cm = [linspace(1,0,100)', linspace(1,0,100)', linspace(.875,1,100)']; %from [1 1 .875] to [0 0 1]
colormap(cm)
% or just use
% colormap(flipud(colormap('parula')))
2 Comments
Adam Danz
on 2 Oct 2019
Glad I could help. I just updated the answer to include a colormap that approximates the colormapping in the image in your question.
More Answers (2)
Tran Hoa
on 2 Oct 2019
6 Comments
Adam Danz
on 2 Oct 2019
I see. sprintfc() is an undocumented built-in matlab function. Apparently you have another file with the same name and that file is a script.
That line is just creating fake labels, anyway. You probably already have your own labels. In any case, you can replace that line with this.
labels = strsplit(sprintf('%c ','a':'t'));
labels(end) = []
Tran Hoa
on 2 Oct 2019
2 Comments
Adam Danz
on 3 Oct 2019
@ Tran Hoa, this thread may become a bit difficult to follow when there are several "answers" posted that are not answer, but discussion. Please use the "comment" section under a particular answer or under the question if you'd like to continue discussion. The "answer" section is for proposing answer to the question stated at the top of the page.
You can't edit the text displayed in a heatmap. Here's a link to some alternatives:
See Also
Categories
Find more on Colormaps in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!