2011-09-24 3 views
3

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

Это, кстати, будет в R. Например, мои данные выглядят следующим образом

x = [1,2,3,4,1,5,6,3,4,7,8,9] 
y = [45,32,67,32,32,47,89,91,10,12,43,27] 
z = [1,2,3,4,5,6,7,8,9,10,11,12] 

Я пытаюсь использовать filled.contour, но он дает мне ошибку говоря й и у должно быть в порядке возрастания. Но я не уверен, как упорядочить мои данные таким образом, что это правда. Поскольку, если я упорядочиваю x в порядке возрастания, тогда y не будет в порядке возрастания.

Для меня также возможно выполнить не заполненный контурный метод, где это только точки данных, которые окрашены. Как я могу это сделать в R. Любые предлагаемые пакеты? Пожалуйста, используйте конкретные примеры. Благодаря!

+0

Ваши данные действительно три вектора? Потому что, если вы действительно прочитали документацию для 'fill.contour', вы быстро увидите, что эта функция ожидает два вектора и матрицу. – joran

+0

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

ответ

5
jet.colors <- 
    colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", 
         "#7FFF7F", "yellow", "#FF7F00", "red", "#7F0000")) 
plot(x,y, col=jet.colors(12)[z], ylim=c(0,100), pch=20, cex=2) 
legend(8.5,90, col = jet.colors(12)[z], legend=z, pch=15) 

И если вы хотите, чтобы проверить расцветку вы можете пометить точки со значением г:

text(x, y+2, labels=z) #offset vertically to see the colors 

enter image description here

Другим вариантом заключается в использовании пакета: Акима, который делает интерполяцию на нерегулярном (не) -grids:

require(akima) 
require(lattice) 
ak.interp <- interp(x,y,z) 
pdf(file="out.pdf") 
levelplot(ak.interp$z, main="Output of akima plotted with lattice::levelplot", contour=TRUE) 
dev.off() 

enter image description here

+0

, но мне нужен контур – CodeGuy

+0

OK. См. Редактирование. –

+0

Вспомогательный вопрос: как я могу получить (непрерывную) легенду, похожую на второй сюжет в вашем ответе, но для первого сюжета? – Mortimer

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