点形文件的颜色条 [英] Colorbar for the point shape file
问题描述
[![在此处输入图像描述] [1]] [1]我已经使用geoshow功能在美国地图上绘制了点形状文件.示例代码在这里:
[![enter image description here][1]][1]Hi I have plotted point shape file on the US map using geoshow function. Example codes are here:
for i = 1:length(X_1991_05)
if (X_1991_05(i,3) <= -0.7);
h1 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('DarkRed'),'MarkerSize',9,'Marker', 'o'); hold on; %,'MarkerSize',2,
for i = 1:length(X_1991_05)
if (X_1991_05(i,3) <= -0.7);
h1 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('DarkRed'),'MarkerSize',9,'Marker', 'o'); hold on; %,'MarkerSize',2,
elseif(X_1991_05(i,3) > -0.7 && X_1991_05(i,3) < -0.6);
h2 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('DarkOrange'),'MarkerSize',9,'Marker', 'o'); hold on;
elseif(X_1991_05(i,3) > -0.6 && X_1991_05(i,3) < -0.5);
h3 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('DarkKhaki'),'MarkerSize',9,'Marker', 'o'); hold on;
elseif(X_1991_05(i,3) > -0.5 && X_1991_05(i,3) < -0.4);
h4 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('Gold'),'MarkerSize',9,'Marker', 'o'); hold on;
elseif(X_1991_05(i,3) > -0.4 && X_1991_05(i,3) < -0.2);
h5 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('Khaki'),'MarkerSize',9,'Marker', 'o'); hold on;
elseif(X_1991_05(i,3) > -0.2 && X_1991_05(i,3) < 0.2);
h6 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('Beige'),'MarkerSize',9,'Marker', 'o'); hold on;
elseif(X_1991_05(i,3) > 0.2 && X_1991_05(i,3) < 0.4);
h7 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('Aqua'),'MarkerSize',9,'Marker', 'o'); hold on;
elseif(X_1991_05(i,3) > 0.4 && X_1991_05(i,3) < 0.5);
h8 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('CornflowerBlue'),'MarkerSize',9,'Marker', 'o'); hold on;
elseif(X_1991_05(i,3) >= 0.5);
h9 = geoshow(Lat,Lon,'DisplayType','point','MarkerEdgeColor','k','MarkerFaceColor',rgb('Navy'),'MarkerSize',9,'Marker', 'o'); hold on;
end
结束
现在我想根据值h1 .... h9添加一个颜色条.此处显示一个示例:
Now I want a to add a colorbar bar based on the values h1 .... h9? An example is shown here:
我不知道该怎么做...有什么帮助吗?
I don't know how to do that... Any help ?
[1]: http://i.stack.imgur.com/ZKJeK.jpg :如果我在代码中使用了colorbar,则会得到如图2所示的图片(随附的链接)
[1]: http://i.stack.imgur.com/ZKJeK.jpg: If I use colorbar in the code I get picture like in Fig. 2 (the attached link)
推荐答案
好.因此,您使用的是自己的颜色图,这就是为什么单个colorbar
命令不能为您提供帮助的原因,因为您没有告诉MATLAB您正在使用什么颜色图.
Ok. So you're using your own colormap, that's why a single colorbar
command won't help you, because you haven't told MATLAB what colormap you're using.
在您的情况下,您可以按以下方式设置颜色表:
In your case, you can setup your colormap like this:
cmap = zeros(9,3);
cmap(1,:) = (139, 0, 0);
cmap(2,:) = (255, 140, 0); % rgb code for dark orange
cmap(3,:) = (189, 183, 107); % dark khaki
cmap(4,:) = (255, 215, 0); % gold
cmap(5,:) = (240, 230, 140); % Khaki
cmap(6,:) = (245, 245, 220); % Beige
cmap(7,:) = (127, 255, 212); % Aquamarine
cmap(8,:) = (100, 149, 237); % Cornflower blue
cmap(9,:) = (0, 0, 128); % Navy
cmap = cmap/255; % MALTAB takes rgb indexes in the range [0 1]
然后您可以像这样使用颜色表:
Then you can use the colormap like this:
if (X_1991_05(i,3) <= -0.7)
h1 = geoshow(Lat, Lon, 'DisplayType', 'point', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', cmap(1,:), 'MarkerSize',9, 'Marker', 'o'); hold on;
....
您必须告诉MATLAB您正在使用什么颜色图,以便它可以为您生成合适的颜色条:
You have to tell MATLAB what colormap you're using so it can generate a proper colorbar for you:
colormap(cmap)
colorbar
这篇关于点形文件的颜色条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!