2016-05-19 15 views
11

Tôi muốn tạo một lớp phủ của một số ô hexbin, nhưng với các bản đồ được tạo sẵn chỉ có thể nhìn thấy hình cuối cùng. Tôi không muốn xây dựng một colormap de novo. Làm cách nào để thêm alpha tuyến tính vào bản đồ màu mà không biết cấu trúc bên trong của bản đồ màu trước?Thêm alpha vào một bản đồ màu matplotlib hiện có

Trả lời

17

Tôi không chắc chắn liệu điều này có đủ điều kiện trong "không biết cấu trúc bên trong của bản đồ" hay không, nhưng có lẽ một cái gì đó như thế này sẽ làm việc để thêm một alpha tuyến tính vào một bản đồ màu hiện có?

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

enter image description here

+0

tôi đã không kiểm tra nó, nhưng trông hoàn toàn 'legit' vì vậy tôi chấp nhận. Cảm ơn. –

Các vấn đề liên quan