Shapefile根据相应的值着色

时间:2015-01-08 14:56:31

标签: matlab colormap

我有以下问题。给出了由两列组成的表格中的数据:

  • column1 :相应地理区域的数字(例如11区,代表慕尼黑)
  • column2 :该区域中的某个值(例如,峰值地面加速度,PGA)

我想在地图上显示这些区域及其对应的值(例如PGA' s)。不相等的值应以不相等的颜色表示。例如

  • zone1 PGA = 12 color = [1.0 1.0 0.0]
  • zone2 PGA = 17色= [1.0 0.9 0.5]
  • zone3 PGA = 25色= [0.6 1.0 1.0]
  • zone1 PGA = 12 color = [1.0 1.0 0.0]

数据包含大约200个区域,总共约160个不同的区域,因此也包含颜色。您建议为每个值设置某种颜色(相同的值=相同的颜色)。

提前感谢您的帮助。 最好的祝福。

1 个答案:

答案 0 :(得分:0)

在您的示例中,在两种情况下,zone1的PGA均为12。总是如此,或者zone1有不同的PGA吗?这个答案假设它将始终具有相同的PGA。

myColorArray = jet(160); %assuming you have 160 unique colors/zones of the 200

此处jet是您创建漂亮的Mx3色彩图的简单内置函数

如果你想随机化这个,那么类似的颜色并不是彼此相邻,你可以做到:

myColorArray(randperm(160),:)  = myColorArray;

现在我不知道你的实际第一列区域是否只是一个1-160的数字,但如果它是你可以用它作为你的索引来对应颜色。

FullColorArray(:,YourMatrix(:,1)) = myColorArray(:,YourMatrix(:,1));

如果不是,您可以使用unique命令创建索引并使用它。

LimitedZoneMat = unique(YourMatrix(:,1));

或者如果我误解了你想让你的颜色与PGA值相关联,你可以将它作为一个索引使用。