Matplotlib bar3d variable alpha

I am using matplotlib bar3d with an RdBu color scheme and want to have variable transparency between the bars (so smaller bars can be more transparent than higher bars).

Here is the code for creating a 3d bar chart. Data is stored in a 4x4 "rho" matrix. Alpha is currently supported at 0.95, but it would be great to control the alpha value for each bar.

Greetings

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) 
0
source share
1 answer
 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() 

enter image description here

+2
source

All Articles