2016-07-28 2 views
0

Я рисую карту в R, используя 'filled.contour()', и я не понимаю, почему эта функция переключает ось x, y. У меня:Построение карт с использованием 'filled.contour'

x=1:20 
y=1:10 
z=array(seq(1,2000,1),dim=c(length(y),length(x))) 
filled.contour(x,y,z,plot.title=title(main="Test",xlab="X",ylab="Y") ) 

Ошибка в .filled.contour (х, у, г, уровни, Col): измерение несоответствие

но если ввести:

z=array(seq(1,2000,1),dim=c(length(x),length(y))) 

он правильно отображает карту. Вся документация по массивам показывает, что «dim» определяется как dim (y, x) Я что-то упустил?

ответ

0

Проблема в том, что вы проходите через функцию контура. Вы должны передать x и y в том порядке, в котором вы задаете z как размеры. Таким образом, причина, по которой z=array(seq(1,2000,1),dim=c(length(x),length(y))) работал потому, что вы назвали для

filled.contour(**x**,**y**,z,plot.title=title(main="Test",xlab="X",ylab="Y")) 

Приведенный ниже код работает, как вы хотели бы надеяться.

x=1:20 
y=1:10 
z=array(seq(1,2000,1),dim=c(length(y),length(x))) 
filled.contour(y,x,z,plot.title=title(main="Test",xlab="X",ylab="Y") ) 
+0

Спасибо Адам. То, что я пытаюсь сделать, состоит в том, что код x = 1: 20 y = 1: 10 z = массив (seq (1,2000,1), dim = c (длина (y), длина (x))) – Augusto

+0

@ Аугусто вы запустили мой код? Он использует эту строку точно, вам нужно просто поменять местами y и x, когда вы вызываете сюжет, как я показываю выше в коде. –

+0

Спасибо, Адам, теперь я понимаю поведение этой функции. Я ценю вашу помощь. Rgs, Augusto – Augusto

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