Create a correlation graph in Matlab

亡梦爱人 提交于 2019-12-03 12:21:30

If you have an n x n correlation matrix M, and a vector L of length n containing the label for each bin, you can use something like the following:

imagesc(M); % plot the matrix
set(gca, 'XTick', 1:n); % center x-axis ticks on bins
set(gca, 'YTick', 1:n); % center y-axis ticks on bins
set(gca, 'XTickLabel', L); % set x-axis labels
set(gca, 'YTickLabel', L); % set y-axis labels
title('Your Title Here', 'FontSize', 14); % set title
colormap('jet'); % set the colorscheme
colorbar on; % enable colorbar

Rotating x-axis labels is not trivial, but the MATLAB Central File Exchange contains some solutions.

Adding to @Thomas C. G.'s answer, I'd use:

imagesc(myMatrix);
colormap(jet);
colorbar;

% then to set the axis titles you'll have to use
% Please note the curly braces for the cell array
labelNames = {'USA','NASDAQ','Dow Jones'};
set(gca,'XTickLabel',labelNames);   % gca gets the current axis
set(gca,'YTickLabel'labelNames);   % gca gets the current axis

Unfortunately, AFAIK, making the text labels vertical as they are in your figure is a bit harder. Maybe somebody else has knowledge to the contrary.

To plot a matrix as an image you just need to call two functions:

image(myMatrix)
colormap(jet)

The colormap function defines the colour pattern used to render the image. The image you posted is using the "jet" colormap.

And to show the colour scale beside the image use the colorbar function.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!