世界地图上的色彩映射为不同的时间步

时间:2015-12-02 11:18:26

标签: matlab

我有一张满足陆地和海洋分离的世界地图。 中国正在传播某种疾病的起点

我想想象世界各地疾病的传播, 所以疾病的第一周例如向北和向南行进50公里,如此进一步发展。

所以,这种疾病在matlab上传播得很好,但是我想每天为新到达的区域涂上不同的颜色?

有人知道如何在colormap中明确这一点吗? 我现在有这个

colormap hsv
axis([-3 3 -3 3 -10 5])
% number of colors
n = 30;
% color map with red and blue on the edges
C1 = [0.7 0.8 0.3; 0.2 0.3 0.1];
% convert to HSV for interpolation
C1_HSV = rgb2hsv(C1);
% interpolate hue value
C1_HSV_interp = interp1([0 n], C1_HSV(:, 1), 1:n); 
% compose full HSV colormap
C1_HSV = [C1_HSV_interp(:), repmat(C1_HSV(2:3), n, 1)];
% convert back to RGB
C1 = hsv2rgb(C1_HSV); 
% set colormap
colormap(C1)

我希望

if i<1                  
L(find(disease>0))=2;
elseif  i<2 
L(find(disease>0))=3;
elseif i<3
L(find(disease>0))=4;
elseif i<4
L(find(disease>0))=5; 
elseif i<5
L(find(disaese>0))=6; 
else
L(find(disease>0))=7;

所以我希望i的每个值都有不同的颜色(在第X天之后传播),但我不知道该怎么做。

想法?

1 个答案:

答案 0 :(得分:1)

根据您的评论,您似乎想要clims([low high])

你的数据可以去,例如。在0到6之间但在不同的时间步长中,您可能没有全部范围,可以调用clims([0 6])。这将始终绘制色彩图,就像数据介于该范围之间一样,即使您的数据实际上并未涵盖该范围。