2017-08-13 164 views
1

我對R很新,所以這可能是一個非常簡單的問題。 我對面積(x,y)進行了測量,我想將信號的位置和強度繪製爲三維圖形。如何在csv文件中獲取x座標和y座標的距離?

我得到的文件有這樣的信息。

;1;2;3;4;5;6;7;8 
1;1;2;8;2;0;0;0;0 
2;2;4;16;4;2;0;0;0 
3;4;16;32;16;4;2;0;0 
4;2;4;16;4;2;0;0;0 
5;0;0;0;0;0;0;0;0 
6;0;0;0;0;0;0;0;0 
7;0;0;0;0;0;0;0;0 
8;0;0;0;0;0;0;0;0 

第一行和列指定位置,然後指定矩陣中每個位置的值。我加載csv文件
test5 <- read.csv("~/test4.csv", header= TRUE , row.names = 1, sep = ";") 然後將其更改爲矩陣,因此可以繪製。 test5 <- as.matrix(test5)

在R上的信息是這樣的:

X1 X2 X3 X4 X5 X6 X7 X8 
1 1 2 8 2 0 0 0 0 
2 2 4 16 4 2 0 0 0 
3 4 16 32 16 4 2 0 0 
4 2 4 16 4 2 0 0 0 
5 0 0 0 0 0 0 0 0 
6 0 0 0 0 0 0 0 0 
7 0 0 0 0 0 0 0 0 
8 0 0 0 0 0 0 0 0 

所以我的頭是不是我orignaly有距離值,當我繪製使用 persp3d(TEST5)

我得到一個但是x和y總是0-1而不是1-8(或者其他的取決於文件的內容)。我究竟做錯了什麼? 感謝您的任何建議。

問題已爲更清晰更新

+0

在澄清問題增添了更多的信息。 –

回答

1

以下是您的問題的解決方案。

test5 <- read.table(text=' 
    0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 
0.1 1 2 8 2 0 0 0 0 
0.2 2 4 16 4 2 0 0 0 
0.3 4 16 32 16 4 2 0 0 
0.4 2 4 16 4 2 0 0 0 
0.5 0 0 0 0 0 0 0 0 
0.6 0 0 0 0 0 0 0 0 
0.7 0 0 0 0 0 0 0 0 
0.8 0 0 0 0 0 0 0 0 
', header=T) 
test5 <- as.matrix(test5) 


library(rgl) 
persp3d(x=seq(0.1,0.8,0.1), 
     y=seq(0.1,0.8,0.1), 
     xlab="x", ylab="y", zlab="z", 
     z=test5, color=terrain.colors(32)) 

enter image description here

+0

完美地工作!謝謝! –