如何从 Python 中的离散数据集创建 3d 热图?
How to create a 3d Heatmap from a discrete data set in Python?
我有一个形式为 [(X1, Y1, Z1, VALUE1), (X2, Y2, Z2, VALUE2)...] 的大型数据集。点的几何形状是圆柱体的表面,虽然有许多离散点,但它们远不是完整的网格。
我想创建一个基本图,其中每个点都根据其值的高低赋予颜色强度(如热图),然后将颜色平滑到一定程度以创建一个有凝聚力的表面而不是离散的点
我目前正在使用 matplotlib,但是,如果需要,我也会使用其他库。
我已经研究了曲面图和三曲面图,但似乎都没有达到我想要的效果(尽管 plot_trisurf() 的文档有点令人困惑,所以也许它仍然是可能的)。
我也看过这个post:3D discrete heatmap in matplotlib。
虽然设置大部分相同,但我想要一个更具凝聚力的表面图而不是 3d 俄罗斯方块设置。最初的答案似乎非常接近我想要的解决方案,但是,我希望颜色基于 VALUE 而不是 Z,并且如果可能的话,在各部分之间进行颜色平滑处理。
根据你的点云有多密集,你可能能够得到你想要的(调整大小参数 s,以填充最适合你的数据的图):
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.scatter(X, Y, Z, c=Value, lw=0, s=20)
plt.show()
我有一个形式为 [(X1, Y1, Z1, VALUE1), (X2, Y2, Z2, VALUE2)...] 的大型数据集。点的几何形状是圆柱体的表面,虽然有许多离散点,但它们远不是完整的网格。
我想创建一个基本图,其中每个点都根据其值的高低赋予颜色强度(如热图),然后将颜色平滑到一定程度以创建一个有凝聚力的表面而不是离散的点
我目前正在使用 matplotlib,但是,如果需要,我也会使用其他库。
我已经研究了曲面图和三曲面图,但似乎都没有达到我想要的效果(尽管 plot_trisurf() 的文档有点令人困惑,所以也许它仍然是可能的)。 我也看过这个post:3D discrete heatmap in matplotlib。
虽然设置大部分相同,但我想要一个更具凝聚力的表面图而不是 3d 俄罗斯方块设置。最初的答案似乎非常接近我想要的解决方案,但是,我希望颜色基于 VALUE 而不是 Z,并且如果可能的话,在各部分之间进行颜色平滑处理。
根据你的点云有多密集,你可能能够得到你想要的(调整大小参数 s,以填充最适合你的数据的图):
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.scatter(X, Y, Z, c=Value, lw=0, s=20)
plt.show()