Matlab: цветовая шкала диаграммы созвездий
Я использую Matlab. У меня большой вектор-столбец, состоящий из комплексных значений. например
Данные = [
-0,4447 + 0,6263i
0,3114 + 0,8654i
0,7201 + 0,6808i
0,7566 + 0,8177i
-0,7532 - 0,8085i
-0,7851 + 0,6042i
-0,7351 - 0,8725i
-0,4580 + 0,8053i
0,5775 - 0,6369i
0,7073 - 0,5565i
0,4939 - 0,7015i
-0,4981 + 0,8112i
....
]
Это представляет диаграмму созвездия, которая показана ниже.
Я хотел бы раскрасить точки созвездия в зависимости от частоты в конкретной точке. Я предполагаю, что мне нужно создать гистограмму, но я не уверен, как это сделать, используя сложные векторы, а затем, как построить градацию цвета. Любая помощь приветствуется.
2 ответа
Я думаю, что вы хотите сделать тепловую карту:
histdata = [real(data), imag(data)];
nbins_x = nbins_y = 10;
[N, C] = hist3(histdata, [nbins_x, nbins_y]); % the second argument is optional.
imagesc(N);
Вот hist3
создает гистограмму-матрицу, imagesc
рисует масштабированную тепловую карту. Если вы предпочитаете 3d-визуализацию, просто наберите hist3(histdata)
,
Если вы просто щелкните правой кнопкой мыши на N в окне рабочей области, появится множество других вариантов визуализации. Я предлагаю также попробовать contourf(N)
который является заполненным контурным сюжетом.
Итак, что вы хотите сделать, это найти гистограмму два-2. Самый простой способ - разделить действительные и мнимые точки и использовать функцию hist2d, например:
rdata=real(data);
idata=imag(data);
hist2d([rdata;idata]);