Julia 根据第四维度更改每个标记的颜色

Julia 根据第四维度更改每个标记的颜色,julia,visualization,plots.jl,Julia,Visualization,Plots.jl,我有3个独立的轴,没有很多离散值,还有3个维度的数据:x,y和z 问题是,因为没有那么多离散值,所以我无法准确地看到数据中的集群。我想要的是,不是每个点都是相同的颜色,一个点是不同的颜色,取决于它发生的次数-就像一个有点的3d热图。例如,如果(1,1,1)出现三次,我希望它比出现一次的颜色更红 我已经看过朱莉娅的系列食谱文档,但我不完全确定该怎么做。能给我指一下正确的方向吗?有没有一种更合理的方式来设想这一点 编辑:为了向任何人展示它最终的样子,我的数据如下: 最简单、最自然的方法是在绘图中添

我有3个独立的轴,没有很多离散值,还有3个维度的数据:x,y和z

问题是,因为没有那么多离散值,所以我无法准确地看到数据中的集群。我想要的是,不是每个点都是相同的颜色,一个点是不同的颜色,取决于它发生的次数-就像一个有点的3d热图。例如,如果(1,1,1)出现三次,我希望它比出现一次的颜色更红

我已经看过朱莉娅的系列食谱文档,但我不完全确定该怎么做。能给我指一下正确的方向吗?有没有一种更合理的方式来设想这一点

编辑:为了向任何人展示它最终的样子,我的数据如下:

最简单、最自然的方法是在绘图中添加抖动

数据设置:

using Random
Random.seed!(0)
N=2000
dat=DataFrame(x=rand(1:5,N),y=rand(1:5,N),z=rand(1:5,N))
绘图:

scatter3d(dat.x+rand(N)./10 .- 0.2, 
          dat.y+rand(N)./10 .- 0.2, 
          dat.z+rand(N)./10 .- 0.2)

但是,如果要使用颜色,仍然可以执行以下操作:

dat2=combine(groupby(dat,[:x,:y,:z]),nrow)
处理完数据后,现在让我们制作一个颜色贴图(您可能希望以不同的方式进行调整):

绘图时间:

scatter3d(dat2.x, dat2.y, dat2.z, color=cols[dat2.nrow])

非常感谢你!事实上,我从这个答案中学到了很多东西,并仔细研究了其中的各个部分。我确实使用了一个不同的彩色地图,其中有更多可单独区分的部分,但除此之外,这个效果非常好。我将把结果放在问题里。不过有一个问题:我找不到任何有关聚合的文档。我从结果中了解到了它的作用,但它实际起到了什么作用?
aggregate
已被弃用,这就是为什么它没有显示在文档中的原因。现在它已被
combine
-我已更新了答案以使用
combine
scatter3d(dat2.x, dat2.y, dat2.z, color=cols[dat2.nrow])