Диаграмма рассеяния с плотностью в Matlab
Я хотел бы построить набор данных 1 и набор данных 2 в одной вертикали графика. К сожалению, данные огромны, поэтому это просто мазок точек и не может видеть плотность. Я пробовал hist3 и другие предложения, но он перезаписывает мои наборы данных, и биннинг выглядит ужасно.
есть ли другой способ построения графиков плотности рассеяния? Действительно ли для него нет функции Matlab? Если нет, то какую программу я могу использовать, чтобы легко создать такой сюжет?
смесь между этими двумя примеры:
2 ответов
спасибо @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
попробовать Скрипка Участка отправка на файлообмен. Это очень настраиваемый. Я использую его все время. Благодаря @Jonas.