Add alpha to an existing matplotlib colormap

后端 未结 2 2153
执念已碎
执念已碎 2020-11-30 06:42

I\'d like to make an overlay of several hexbin plots, but with builtin colormaps only the last one is visible. I don\'t want to construct a colormap de novo. How one would a

2条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-11-30 07:23

    I'm not quite sure if this qualifies within "not knowing the inner structure of the colormap", but perhaps something like this would work to add a linear alpha to an existing colormap?

    import numpy as np
    import matplotlib.pylab as pl
    from matplotlib.colors import ListedColormap
    
    # Random data
    data1 = np.random.random((4,4))
    
    # Choose colormap
    cmap = pl.cm.RdBu
    
    # Get the colormap colors
    my_cmap = cmap(np.arange(cmap.N))
    
    # Set alpha
    my_cmap[:,-1] = np.linspace(0, 1, cmap.N)
    
    # Create new colormap
    my_cmap = ListedColormap(my_cmap)
    
    pl.figure()
    pl.subplot(121)
    pl.pcolormesh(data1, cmap=pl.cm.RdBu)
    pl.colorbar()
    
    pl.subplot(122)
    pl.pcolormesh(data1, cmap=my_cmap)
    pl.colorbar()
    

提交回复
热议问题