2013-01-14 36 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

任何错误消息?你有没有安装格子包? –