How to plot correlation coefficient matrix plot?

8 views (last 30 days)
I want to plot a correlation coefficient matrix plot and I want to show the values at each individual box as shown in the picture. I have my my calculated correlation coeff values.

Answers (1)

Adam Danz
Adam Danz on 29 Jun 2022
Edited: Adam Danz on 29 Jun 2022
Assuming you already have the correlation matrix, use heatmap. The upper triangle can be filled with NaNs.
S = load('Data_Canada');
r = corr(S.Data)
r = 5×5
1.0000 0.9266 0.7401 0.7287 0.7136 0.9266 1.0000 0.5908 0.5716 0.5556 0.7401 0.5908 1.0000 0.9758 0.9384 0.7287 0.5716 0.9758 1.0000 0.9861 0.7136 0.5556 0.9384 0.9861 1.0000
% Replace upper triangle with NaNs
isupper = logical(triu(ones(size(r)),1));
r(isupper) = NaN
r = 5×5
1.0000 NaN NaN NaN NaN 0.9266 1.0000 NaN NaN NaN 0.7401 0.5908 1.0000 NaN NaN 0.7287 0.5716 0.9758 1.0000 NaN 0.7136 0.5556 0.9384 0.9861 1.0000
% Plot results
h = heatmap(r,'MissingDataColor','w');
labels = ["wt","hp","xy","ad","tt"];
h.XDisplayLabels = labels;
h.YDisplayLabels = labels;
  2 Comments
Adam Danz
Adam Danz on 30 Jun 2022
Edited: Adam Danz on 1 Jul 2022
Flip the colormap using flipud
h.Colormap = flipud(h.Colormap);
where h is the heatmap object.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!