我想在一个垂直图中绘制数据集 1 和数据集 2。可惜数据量很大,所以只是点的涂抹,看不出密度。我尝试了 hist3 和其他建议,但它覆盖了我的数据集,分箱看起来很糟糕。
还有另一种绘制散点图的方法吗?真的没有 Matlab 函数吗?如果没有,我可以使用哪个程序来轻松生成这样的图?
这两个例子的混合:
(来源:bcgsc.ca)
最佳答案
感谢@Emil Albert进行更正(缺少转置)
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
的第二个输出来获取bin 中心的位置,并将它们传递到 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
关于matlab - Matlab 中具有密度的散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006490/