点形状文件的颜色条

Colorbar for the point shape file

[![在此处输入图像描述][1]][1]您好,我已经使用 geoshow 函数在美国地图上绘制了点形状文件。示例代码在这里:

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 添加一个颜色条条?此处显示了一个示例:

我不知道该怎么做...有什么帮助吗?

[1]: http://i.stack.imgur.com/ZKJeK.jpg: 如果我在代码中使用颜色条,我得到的图片如图 2 所示(附件 link)

好的。所以您正在使用自己的颜色图,这就是为什么单个 colorbar 命令对您没有帮助,因为您没有告诉 MATLAB 您正在使用什么颜色图。

在您的情况下,您可以像这样设置颜色图:

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]

然后你可以像这样使用颜色图:

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 您正在使用什么颜色图,以便它可以为您生成合适的颜色条:

colormap(cmap)
colorbar