点形状文件的颜色条
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
[![在此处输入图像描述][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