Dear member, how to plot this figure in Matlab. Many thanks
Kind regards

 Akzeptierte Antwort

Adam Danz
Adam Danz am 2 Okt. 2019
Bearbeitet: Adam Danz am 2 Okt. 2019

0 Stimmen

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 Kommentare

Tran Hoa
Tran Hoa am 2 Okt. 2019
Thank you so much Adam
Kind regards
Adam Danz
Adam Danz am 2 Okt. 2019
Glad I could help. I just updated the answer to include a colormap that approximates the colormapping in the image in your question.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Tran Hoa
Tran Hoa am 2 Okt. 2019

0 Stimmen

Dear Adam how to change number 1, 2 (I circur in the figure by name EX: Machine 1). Here my code and file exel
filename = 'Test output ANN alone _ PSO _ IPSO';
sheetname1 = 'Sheet1';
data = xlsread(filename,sheetname1,'B2:D42');
heatmap(data)
xlabel('predicted')
ylabel('actual')
Thank you

6 Kommentare

To change the xtick labels in the demo from my answer,
h = heatmap(data);
labels = sprintfc('%c','a':'t');
h.XData = labels; % <---change labels
Adam Danz
Adam Danz am 2 Okt. 2019
Tran Hoa's answer moved here as a comment. Please use the comment sections for discussion and the answer sescions for answer.
Why errors happen when I use this code as your instruction
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)
h = heatmap(data);
labels = sprintfc('%c','a':'t');
h.XData = labels; % <---change labels
Adam Danz
Adam Danz am 2 Okt. 2019
Bearbeitet: Adam Danz am 2 Okt. 2019
How could I answer that without knowing the error message? Please provide the entire copy-pasted error message and the version of matlab you're using.
Tran Hoa
Tran Hoa am 2 Okt. 2019
I used Matlab 2018B. Thank you
Capture.PNG
Tran Hoa
Tran Hoa am 2 Okt. 2019
Dear Adam, based on your instruction, I also solved this problem. Thank you so much. Kind regardsCapture.PNG
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) = []

Melden Sie sich an, um zu kommentieren.

Tran Hoa
Tran Hoa am 2 Okt. 2019

0 Stimmen

Thank you so much Adam. I’m a beginer, I will try to study more. Kind regards

2 Kommentare

Tran Hoa
Tran Hoa am 3 Okt. 2019
Dear Adam, how to plot figure like this, two values (347 and 14.6% or can use words insteads of number in the sheet). Thank you so much.
Capture.PNG
Adam Danz
Adam Danz am 3 Okt. 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:

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Color and Styling finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by