Matplotlib bar3d variable alfa

Estoy usando matplotlib bar3d con RdBu colormap y quería tener una transparencia variable entre las barras (así que las barras más pequeñas pueden ser más transparentes que las barras más altas).

Aquí está el código para hacer el gráfico de barras 3d. Los datos se almacenan en una matriz 4×4 ‘rho’. En este momento, el alfa se mantiene en 0,95, pero sería excelente poder controlar el valor del alfa para cada barra.

Aclamaciones

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) 

 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() 

introduzca la descripción de la imagen aquí