我有一个3D数据集,我用散点图可视化。这就是它的样子:
我现在想根据数据的密度对不同的点进行着色。有什么办法可以在Python或MATLAB中做到这一点吗?另一种选择可以是根据数据点位于其中的数据并对数据进行着色。我使用Python的histogramdd
函数对数据进行了分类。
H,edges = np.histogramdd(al,bins=(16,16,16))
这个想法是让它看起来像这样:
使用此主题中提供的代码:3D discrete heatmap in matplotlib
如果您对如何做到这一点有任何想法,我会很高兴听到它们!
答案 0 :(得分:0)
谢谢大家的意见。遗憾的是,使用hist3基金不起作用,因为我有3个维度,hist3只需要两个变量,并计算直方图值作为第三个。我现在的解决方案是为每个数据点计算一定半径内的点数。然后我用这些值用scatter3(x,y,z,2,c)
为我的绘图着色
c=zeros(size(x));
for i=1:length(x)
j=1:length(x);
j(i)=[];
s = sort((x(j)-x(i)).^2+(y(j)-y(i)).^2+(d(j)-d(i)).^2);
c(i)=sum(s<2);
end
scatter3(d,x,y,2,c)