我想在一个垂直的图中绘制数据集 1 和数据集 2。可惜数据很大,所以只是点的涂抹,看不到密度。我尝试了 hist3 和其他建议,但它覆盖了我的数据集并且分箱看起来很糟糕。
还有另一种绘制散点密度图的方法吗?真的没有Matlab函数吗?如果没有,我可以使用哪个程序来轻松生成这样的图?
这两个示例之间的混合:
(来源:bcgsc.ca)
我想在一个垂直的图中绘制数据集 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
尝试在 File Exchange 上提交Violin Plot 。它非常可定制。我用它所有的时间。感谢@Jonas。