Python Matplotlib bar3d变量alpha

Python Matplotlib bar3d变量alpha,python,matplotlib,mplot3d,colormap,Python,Matplotlib,Mplot3d,Colormap,我将matplotlib bar3d与RdBu colormap一起使用,希望在条之间具有可变的透明度(因此较小的条比较高的条更透明) 以下是制作三维条形图的代码。数据存储在4x4矩阵“rho”中。目前alpha保持在0.95,但最好能够控制每个条的alpha值 干杯 xpos = np.arange(0,4,1) ypos = np.arange(0,4,1) xpos, ypos = np.meshgrid(xpos, ypos) xpos = xpos.flatten() ypos = y

我将matplotlib bar3d与RdBu colormap一起使用,希望在条之间具有可变的透明度(因此较小的条比较高的条更透明)

以下是制作三维条形图的代码。数据存储在4x4矩阵“rho”中。目前alpha保持在0.95,但最好能够控制每个条的alpha值

干杯

xpos = np.arange(0,4,1)
ypos = np.arange(0,4,1)
xpos, ypos = np.meshgrid(xpos, ypos)
xpos = xpos.flatten()
ypos = ypos.flatten()
zpos = np.zeros(4*4)
dx = 0.5 * np.ones_like(zpos)
dy = dx.copy()
dz = rho.flatten()
nrm=mpl.colors.Normalize(-1,1)
colors=cm.RdBu(nrm(-dz))
alpha = 0.95
ax.bar3d(xpos,ypos,zpos, dx, dy, dz, alpha=alpha, color=colors, linewidth=0)


你也可以给出一个自定义的alpha值列表,alpha=[.1,0.2……]但是它应该和xposThis有相同的长度这很好,alpha=abs(dz[i]/max(dz))给出了与高度成比例的alpha值。你也可以给出一个自定义的alpha值列表,alpha=[.1,0.2……],但是它应该和xposThis有相同的长度这很好,alpha=abs(dz)[i] /max(dz))给出与高度成比例的α
xpos = np.arange(0,4,1)
ypos = np.arange(0,4,1)
xpos, ypos = np.meshgrid(xpos, ypos)
xpos = xpos.flatten()
ypos = ypos.flatten()
zpos = np.zeros(4*4)
rho = np.random.random((4,4))
dx = 0.5 * np.ones_like(zpos)
dy = dx.copy()
dz = rho.flatten()
nrm=mpl.colors.Normalize(-1,1)
colors=cm.RdBu(nrm(-dz))
alpha = np.linspace(0.2, 0.95, len(xpos), endpoint=True)
fig = plt.figure()
ax = fig.gca(projection='3d')
for i in range(len(xpos)):
    ax.bar3d(xpos[i],ypos[i],zpos[i], dx[i], dy[i], dz[i], alpha=alpha[i], color=colors[i], linewidth=0)
plt.show()