Подтвердить что ты не робот

График рассеяния с плотностью в Matlab

Я хотел бы построить набор данных 1 и набор данных 2 на одной вертикальной диаграмме. К сожалению, данные огромны, так что это просто пятно точек и не видно плотности. Я попробовал историю 3 и другие предложения, но они перезаписывают мои наборы данных, и набор выглядит ужасно.

Есть ли другой способ построения графиков плотности рассеяния? Неужели для этого нет функции Matlab? Если нет, то какую программу я могу использовать для создания такого сюжета?

Сочетание этих двух примеров:

Example1

Example2
(источник: bcgsc.ca)

4b9b3361

Ответ 1

Благодаря @Emil Albert для коррекции (отсутствует транспозиция)


Что случилось с вычислением hist3 и отображением результата с помощью imagesc?

data1 = randn(1,1e5); %// example data
data2 = randn(1,1e5) + .5*data1 ; %// example data correlated to above
values = hist3([data1(:) data2(:)],[51 51]);
imagesc(values.')
colorbar
axis equal
axis xy

введите описание изображения здесь


Если вы хотите иметь оси в соответствии с истинными значениями данных: используйте второй вывод hist3 для получения позиций центров бункеров и передайте их в imagesc:

data1 = randn(1,1e5); %// example data
data2 = 2*randn(1,1e5) + 1.2*data1 + 4; %// example data correlated to above
[values, centers] = hist3([data1(:) data2(:)],[51 51]);
imagesc(centers{:}, values.')
colorbar
axis xy

введите описание изображения здесь

Ответ 2

Попробуйте Подача скрипта для обмена файлами. Он очень настраиваемый. Я использую это все время. Благодаря @Jonas.