How to remove specific colour from "surf" plot?
조회 수: 9 (최근 30일)
이전 댓글 표시
I am trying to generate a density plot overlayed on a background image.
For me it is interesting the points where the density is higher, so I want to remove the blue color, or make it transparent somehow.
This is how i generated this figure. I used "dscatter" function from Mathworks to generate density plot.
figure
img = imread('estimulo_neutro.jpg');
image('CData',img,'XData',[0 1080],'YData',[1900 0])
x = vector0(:,1);
y = vector0(:,2);
hold on
t = dscatter(x, y, 'plottype', 'surf');
colormap(jet)
댓글 수: 0
채택된 답변
Daniel M
2019년 11월 28일
I don't have this dscatter function, but here is an example of how to do this with imagesc (which is similar enough that you could translate it to your situation). It involves setting the AlphaData property of your image. In the following example, I do so based on if the value is NaN. But you could do it for any value (and thus any colour).
clearvars
close all
clc
% get some data and plot it
z = peaks;
x = 1:size(z,1);
y = 1:size(z,2);
figure
imagesc(x,y,z);
colorbar
% now make some values in z NaN and plot them blank
nanz = z;
nanz(z < 1 & z > -1) = NaN;
figure
I = imagesc(x,y,nanz);
colorbar
% Use the AlphaData property to set the NaN values to blank
I.AlphaData = ones(size(nanz));
I.AlphaData(isnan(nanz)) = 0;
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Orange에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!