Как сделать прозрачными NaN и ZEROS с помощью функции imagesc в MATLAB? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть матрица hist2, которая содержит множество значений NaN и нулей.Я отобразил его значения на карте.Однако моя проблема в том, что NaN и нули имеют темно-синий цвет, и я бы хотел, чтобы они вообще не имели цвета, были полностью прозрачными.

Я пробовал разные вещи:

  1. imAlpha = ones(size(hist2));
    imAlpha(isnan(hist2)) = 0;
    im = imagesc(hist2,'AlphaData',imAlpha);
    set(gca,'color',[1 1 1]);
    
  2. im.AlphaDataMapping = 'none';
    im.FaceAlpha = 'texturemap';
    alpha(im,double(~isnan(hist2)));
    

К сожалению, ни один из них не сработал.У меня нет других идей.

Следующий код выводит карту ниже:

ax = worldmap([0 45],[-110 -30])
land = shaperead('landareas.shp', 'UseGeoCoords', true);
geoshow(land, 'FaceColor', [0.15 0.5 0.15])
xgrid = minx:gridres:maxx;
ygrid = miny:gridres:maxy;
im = imagesc(xgrid,ygrid,hist2/(gridres^2),'AlphaData',imAlpha);
colorbar
uistack(im,'bottom')
hold on 
xlabel('Longitude (E)')
ylabel('Latitude (N)')
drawnow

output

Позже яуспешно превратить синюю область в белую - но она все еще не была прозрачной.Мне бы хотелось, чтобы темно-синяя область не имела цвета.

...