Извините, если я упустил очевидное...
Я рисую трехмерную поверхность с помощью rgl. Мой код
library(rgl)
dem1 = read.table(file="file.txt",skip=5,header=F,na.strings="0.")
dem = dem1[order(dem1$V1,dem1$V2),]
z = matrix(dem$V3,nrow=1250,ncol=1250)
is.na(z) = (z < 200)
#create x y dimensions
x=4*(1:nrow(z))
y=4*(1:ncol(z))
open3d()
bg3d("white")
persp3d(x,y,z)
который дает эту карту (цвет был добавлен, чтобы лучше видеть функции, хотя я не помещал код для него выше)
Проблема в том, что что бы я ни делал с этой картой, она перевернута, т.е. x должен быть y, а то, что в настоящее время y, идет с запада (0) на восток (5000), но это должно быть наоборот, так что приподнятая функция должна быть на самом деле внизу слева, а не внизу справа.
Я построил очень простую контурную карту, используя тот же файл с этим скриптом.
dem=read.table("file.txt",header=F,skip=5,na.strings="0.")
library(lattice)
contourplot(dem$V3 ~ dem$V1+dem$V2)
который дает
и который получает правые оси и самую приподнятую область в левом нижнем углу именно там, где он должен быть, поэтому с данными нет проблем.
Я объясню, как данные выглядят здесь и почему я чувствую необходимость изменить их порядок. с участием
dem = dem1[order(dem1$V1,dem1$V2),]
Странно то, что независимо от того, использую ли я приведенную выше команду или нет, трехмерная карта поверхности выглядит точно так же, что заставляет меня задаться вопросом, действительно ли код использует набор данных «dem», созданный с помощью команды order
, или он все еще использует исходный " dem1", которые были прочитаны из файла и расположены в неправильном порядке.
Я очень рад отправить данные по запросу или разместить их где-нибудь, чтобы их можно было увидеть, но я не могу скопировать их здесь, так как это 1250 строк x 1250 столбцов.
Заранее спасибо!
z
, не так ли? R будет заполнять столбцы, а не строки. Посмотрите, работает лиz <- matrix(dem$V3, nrow=1250, ncol=1250, byrow = TRUE)
. Это единственная разница, которую я вижу между тем, что используетсяcontourplot()
иpersp3d()
. - person Gavin Simpson   schedule 24.08.2011