2013-01-14 37 views
3

我想繪製這樣的簡單圖片,使用3個值 - xyz從文本文件加載。R中的反向軸

enter image description here

現在我需要X軸從最大的數字到最低(現在右邊最大的數字,我需要他們在左邊),使兩個零在同一個角落見面。我正在使用這個簡單的代碼:

xyz <- read.table("excel") 
scatterplot3d(xyz,xlim = c(0, 100000)) 
xyz 

我試過「rev」沒有成功。圖片總是看起來一樣。幫助將不勝感激。存儲在一個名爲「創先爭優」的文件

的樣本數據:

8884 20964 2 
8928 5 1 
9033 6 2 
9261 61307 1 
9435 64914 3 
9605 5 2 
9626 7 3 
9718 5 3 
10117 48941 7 
10599 399 9 
20834 5802 10 
21337 3 8 
21479 556 8 

我希望我的0,0,0點是在右前下來角落。

+0

如圖所示,您的0,0,0點位於左前角。這不是你想要的嗎?一個可重複的例子會有幫助(使用一些組成數據),你也可以將V1,V2,V3映射到x,y和z嗎?這樣我們可以更好地幫助你。 –

+0

謝謝布萊恩,我添加了樣本數據和解釋 - 我希望我的0,0,0點位於右下角。 – Perlnika

回答

6

您可以選擇270

scatterplot3d(xyz,xlim = c(0, 100000),angle=ang) 

例如> 90 <之間的角度:

z <- seq(-10, 10, 0.01) 
x <- cos(z)+1 
y <- sin(z)+1 
scatterplot3d(x, y, z, highlight.3d=TRUE, col.axis="blue",angle=120, 
       col.grid="lightblue", main="scatterplot3d - 1", pch=20) 

enter image description here

+0

謝謝,我調整了它,它的工作原理。不過,我仍然很好奇如何按照自己的方式來做到這一點。如果沒有答案,我會將你的標記標記爲aswer。我的代碼:scatterplot3d(xyz,highlight.3d = TRUE,col.axis =「blue」,angle = 150, col.grid =「lightblue」,ylim = c(0,100000),main =「scatterplot3d - 1」 ,pch = 20) – Perlnika

4

如果不使用雲功能,從格子包介意,那麼你可以簡單地把xlim的參數按相反的順序排列:

require(lattice) 

xyz <- read.table(text = 
"0 1 2 
1 2 3 
2 3 4 
3 4 5") 

cloud(V3~V1*V2,data = xyz, scales = list(arrows = FALSE), drape = T, xlim = c(3,0)) 

您可以使用screen參數旋轉軸,使其看起來像您喜歡的樣子。
enter image description here

+0

謝謝,但這並不適合我:/(我複製粘貼你的源代碼) – Perlnika

+0

任何錯誤消息?你有沒有安裝格子包? –