我想在一个垂直的图中绘制数据集1和数据集2。不幸的是,数据量很大,所以只有一堆点,无法看到密度。我尝试了hist3和其他建议,但它会覆盖我的数据集,而且分箱看起来很糟糕。是否有另一种方法来绘制散点密度图?真的没有Matlab函数可以做到吗?如果没有,我应该使用哪个程序来轻松生成这样的图形?这两个示例之间的混合物:
(来源:bcgsc.ca)
(来源:bcgsc.ca)
感谢@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
hold on
并在其上绘制线条。例如,尝试在我的代码后输入 hold on; plot(1:50,1:50,'k--','linewidth',1.5)
- Luis Mendo