小编jjv*_*jjv的帖子

matplotlib 中的 4D 热图

我想通过 matplotlib 在 Python 中绘制 4D 热图,就像这个4d map

我已经有了一组 3D 网格点(x,y,z)及其对应的函数值f

我正在考虑使用plot_surfacewith xyz作为三个必需的数组来绘制它,并使用f.

有一种方法在这里使用f的颜色渐变,但我有麻烦绘制三维网格,我会强调,第三维是独立于前两个。(第二个链接另有说明。)

或者有什么方法可以使用 matplotlib 更好地可视化这个 4D 数据?

python matplotlib 4d

5
推荐指数
1
解决办法
3507
查看次数

具有不同颜色条的子图

我有一个 2x3 的等高线图子图。我想要两个水平颜色条,一个用于前 2 列,一个用于第三列。我只能为每一列(因此,3 个颜色条)执行此操作,但我需要前两列的共享颜色条。

这是我的示例代码:

import numpy as np
import matplotlib.pyplot as plt

v = np.arange(-180,181,15)
y,x = np.meshgrid(v,v)

p1 = 100*np.sin(x+y)
p2 = 100*np.sin(2*x+y)
p3 = 100*np.sin(3*x+y)
p4 = 100*np.sin(4*x+y)
p5 = 5*np.cos(x+5*y)
p6 = 5*np.cos(x+6*y)

f, ax = plt.subplots(2,3,sharex='row',sharey='col',figsize=(4,6))

mina = min(min(p1.reshape(625,)),min(p2.reshape(625,)),min(p3.reshape(625,)),min(p4.reshape(625,)))
maxa = max(max(p1.reshape(625,)),max(p2.reshape(625,)),max(p3.reshape(625,)),max(p4.reshape(625,)))
minb = min(min(p5.reshape(625,)),min(p6.reshape(625,)))
maxb = max(max(p5.reshape(625,)),max(p6.reshape(625,)))

ax[0,0].contourf(x,y,p1,20,vmin=mina,vmax=maxa)
ax[0,0].set(adjustable='box-forced', aspect='equal')
l0 = ax[1,0].contourf(x,y,p2,20,vmin=mina,vmax=maxa)
ax[1,0].set(adjustable='box-forced', aspect='equal')
ax[0,1].contourf(x,y,p3,20,vmin=mina,vmax=maxa)
ax[0,1].set(adjustable='box-forced', aspect='equal')
l1 = ax[1,1].contourf(x,y,p4,20,vmin=mina,vmax=maxa)
ax[1,1].set(adjustable='box-forced', aspect='equal')
ax[0,2].contourf(x,y,p5,20,vmin=minb,vmax=maxb)
ax[0,2].set(adjustable='box-forced', aspect='equal')
l2 = ax[1,2].contourf(x,y,p6,20,vmin=minb,vmax=maxb)
ax[1,2].set(adjustable='box-forced', aspect='equal')

f.colorbar(l0, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar subplot

1
推荐指数
1
解决办法
1831
查看次数

标签 统计

matplotlib ×2

python ×2

4d ×1

colorbar ×1

subplot ×1