微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决根据第四维度更改每个标记的颜色

我有3个独立的轴,离散值不多,并且有3个数据维度:x,y和z。

small graph

问题在于,因为没有太多离散值,所以我无法准确看到数据中的簇。我想要的是,不是每个点都具有相同的颜色,而是一个点根据其出现的次数而具有不同的颜色-例如带有点的3D热图。例如,如果(1,1,1)出现3次,我希望它比一次出现的事物更红。

我看过朱莉娅(Julia)的系列食谱文档,但是我不确定如何去做。我能指出正确的方向吗?有没有更明智的可视化方式?

编辑:要向任何人显示最终结果,我的数据就是这样的:

heatmapped 3D scatter plot

解决方法

最简单,最自然的方法是在情节中增加抖动。

数据设置:

using Random
Random.seed!(0)
N=2000
dat=DataFrame(x=rand(1:5,N),y=rand(1:5,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)

enter image description here

但是,如果您要使用颜色,仍然可以这样做:

dat2=combine(groupby(dat,[:x,:y,:z]),nrow)

现在已经处理了数据,让我们制作一个颜色图(您可能希望对其进行不同的调整):

using Colors
cols = range(colorant"red",stop=colorant"green",length=maximum(dat2.nrow))

绘制时间:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。