Создание корреляционного графика в Matlab
Я пытаюсь эмулировать этот график:
Если у меня есть корреляционная матрица, как я могу создать такой вывод?
3 ответов
если у вас есть n x n
матрица корреляций M
, и вектор L
длиной n
содержащ ярлык для каждого ящика, вы можете использовать что-то вроде следующего:
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
вращение меток оси x не является тривиальным, но Центральный файловый обмен MATLAB содержит некоторые решения.
добавив к ответу @Thomas C. G., Я бы использовал:
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
к сожалению, AFAIK, делая текстовые метки вертикальными, как они есть на вашем рисунке немного сложнее. Может быть, кто-то другой знает об обратном.
чтобы построить матрицу как изображение, вам просто нужно вызвать две функции:
image(myMatrix)
colormap(jet)
на цвета функция определяет цветовой шаблон, используемый для отображения изображения. Изображение, которое вы разместили, использует цветовую карту "jet".
и для отображения цветовой шкалы рядом с изображением используйте colorbar