2015-01-08 6 views
0

У меня есть следующая проблема. Приведены данные в таблице consisiting двух колонок:Shapefiles окрашены в соответствии с соответствующими значениями

  • column1: Номера для соответствующих географических зон (например, зона 11, которая выступает за Мюнхен)
  • Столбец2: определенное значение в этой зоне (например, ускорение пикового заземления, PGA)

Я хотел бы отобразить эти зоны с их соответствующими значениями (например, PGA) на карте. неравные ценности должны быть представлены в неравных цветах. Например

  • zone1 ПГА = 12 цвет = [1,0 1,0 0,0]
  • Zone2 ПГА = 17 цвет = [1,0 0,9 0,5]
  • Zone3 ПГА = 25 цвет = [0,6 1,0 1,0]
  • зона1 PGA = 12 цвет = [1,0 1,0 0,0]

Данные содержат около 200 зон и всего около 160 различных зон и, следовательно, цветов. Что бы вы предложили установить для каждого значения определенный цвет (одинаковые значения = тот же цвет).

Заранее благодарю вас за помощь. С уважением.

+0

Что такое карта? Это, например, цветовая карта или географическая карта? Что вы хотите, чтобы цвет представлял? Это повлияло бы на выбор цвета. – kkuilla

+0

Это в основном географическая карта. Различные зоны на этой карте затем должны быть окрашены по-разному в соответствии с физическим значением (пиковое ускорение). Цвета представляют различные значения ускорения на земле, например: область залива в Калифорнии (регион/зона) красным цветом из-за большого значения PGA. – Turi

+0

Ваш вопрос немного неясен. Вопрос, который вы задали, - это то, какие цвета или цветовая схема вы должны выбрать, но я чувствую, что реальный вопрос заключается в том, как вы применяете разные цвета к областям изображения. – kkuilla

ответ

0

В вашем примере у вас есть зона1 с PGA = 12 в обоих случаях. Это всегда так, или с zone1 когда-либо имели другую PGA? Этот ответ предполагает, что он всегда будет иметь тот же PGA.

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

Здесь jet ваша простая встроенная функция для создания хороший Mx3 Colormap

Если вы хотите рандомизации это так подобные цвета не рядом друг с другом вы можете сделать:

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

Теперь я не знаю, действительно ли ваш фактический первый столбец для зон - это всего лишь номер от 1-160, но если это так, вы можете просто использовать это как свой индекс для соответствия цветам.

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

Если это не так, вы можете использовать команду unique для создания индекса и работать с этим.

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

Или, если я неправильно понял, и вы хотите, чтобы ваши цвета коррелируют со значением PGA, вы могли бы просто использовать его в качестве индекса.

Смежные вопросы