How to plot correlation coefficient matrix plot?

378 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
Roja Eliza
Roja Eliza on 30 Jun 2022
Thanks a lot..works fine. just one query I want to reverse the colour from depper shade to lighter which I cannt seem to edit in the property inspector. It only takes pre defined colour schemes
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.

Categories

Find more on Data Distribution Plots 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!