Диаграмма рассеяния с плотностью в Matlab

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

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

смесь между этими двумя примеры:

Example1

Example2 http://www.bcgsc.ca/people/malachig/htdocs/alexa_platform/alexa_seq/FL_Trans/images/HS1361/ExonRegionVsGeneExpression_Log2.jpeg

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

enter image description here


если вы хотите оси в соответствии с истинными значениями данных: используйте второй выход 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

enter image description here


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