gpt4 book ai didi

来自 3d 坐标的 Python 热图

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:56 24 4
gpt4 key购买 nike

我从两个 linspaces 开始,然后将它们网格化。然后我在网格上计算一个函数的值。我的函数称为 cpt_hcpv() .然后我想热图我的数据,网格上的每个点都有相应的函数值。

代码看起来像

poro = np.linspace(min(poro), max(poro))
sw = np.linspace(min(sw), max(sw))

g = np.meshgrid(poro, sw)
points = zip(*(x.flat for x in g))

hcpv = []
for p in points:
hcpv = hcpv + [cpt_hcpv(p[0], p[1], poro, sw)]

def cpt_hcpv(pCut, sCut, poro, sw):
#find points belonging to calculation
truncated = [(p, s) for p, s in zip(poro, sw) if p > pCut and s < sCut ]
hcv = 0
for k in truncated:
hcv += p*(1-s)*0.5
return hcv

为什么我不计算 cpt_hcpv()直接在网格上:因为我必须在理解中处理条件 truncated = [(p, s) for p, s in zip(poro, sw) if p > pCut and s < sCut ]所以我必须迭代网格中的点。 我不知道如何在网格上迭代。

所以,我想从 3d 坐标绘制热图:在 points 中我有 x 和 y 点和 hcpv我有每个点的 z 参数,顺序相同。

从我发现的示例中,有 pylab 和 matplotlib 解决方案可以根据 meshgrid + 在网格上计算的值绘制热图,其中一种方法将 meshgrid 作为参数。

有没有办法从 3d 坐标绘制热图?

最佳答案

如果您需要遍历网格,试试这个:

g = np.meshgrid(poro, sw)

#Turn into 2x3x3 array
g_arr = np.array(g)

#Move first dimension to third: 3x3x2 array
g_arr = g_arr.swapaxes(0,1).swapaxes(1,2)

#Generate results by iterating over first and second dimension, and unpacking the third
hcpv = np.array([[cpt_hcpv(p, s, poro, sw) for p,s in r] for r in g_arr])

我不知道 matplotlib 是否可以轻松绘制来自通用 3-d 点的热图。它必须处理分散、无序和缺失点的一般情况。

关于来自 3d 坐标的 Python 热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18448731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com