【发布时间】:2018-02-04 23:34:02
【问题描述】:
我有一个 3D 数据集,我用散点图对其进行可视化。看起来是这样的:
我现在想根据数据的密度为不同的点着色。有什么办法可以在 Python 或 MATLAB 中做到这一点?另一种选择可能是对数据进行分箱并根据其中有多少数据点为分箱着色。我使用 Python 的 histogramdd 函数对数据进行了分箱。
H,edges = np.histogramdd(al,bins=(16,16,16))
我们的想法是让它看起来像这样:
使用此线程中提供的代码:3D discrete heatmap in matplotlib
如果您对我如何做到这一点有任何想法,我会很高兴听到他们的意见!
【问题讨论】:
-
散点图本身(matlab中的scatter3)可以带一个参数来确定每个散点的大小,另一个参数来确定颜色。
-
参见stackoverflow.com/a/38557802/4183191 以获取 2D 示例; 3D 示例是相同的;只需为第三维添加另一个参数。如果您喜欢正方形,也可以为您的点选择形状。
-
是的,谢谢,我虽然是这样,但我如何获得各个数据点的数据密度以确定它们的颜色?
-
我现在计算一定范围内的邻居数量来确定颜色,它给出了一个漂亮的结果。如果有一个用于 3d 热图的内置函数,那么知道它真的很酷:)
-
据我所知,没有内置函数,但您应该能够相当有效地实现您所描述的内容,在这种情况下您有您的解决方案,请考虑将其发布为答案
标签: python matlab plot heatmap 4d