如何在R中为3D图添加标签?

时间:2015-03-08 15:43:27

标签: r plot 3d

我想要在3个维度中绘制数据。我有两个数据帧,我希望在同一个图中绘制来自它们的数据(所有变量的比例相似,只有一个数据帧具有所有异常值,我希望看到它与大多数的分离)。我附上了一份数据样本。两个数据帧都具有相同的列。

  id  ele hap.700. hap.400.        HL        HW         IN       IOA
1 F031 1745       B2     BMP1 0.2701648 0.2831743 0.13052906 0.1860364
2 F032 1740       B2     BMP1 0.2903226 0.2985939 0.06823821 0.1546733
3 F084 2000       B3     BMP1 0.2379221 0.3864935 0.09090909 0.1802597
4 F189 2150       B3     BMP1 0.3370195 0.3712480 0.10110584 0.1827278
5 F200 2355       B3     BMP1 0.2813953 0.4000000 0.10872093 0.1680233
6 F085 2020       B4     BMP2 0.2659981 0.3595989 0.11652340 0.1757402

我在2D绘图中使用了以下代码

x=data.frame(read.csv(file.choose()))   #Choose the first data.frame
plot(x$HL,x$HW,pch=19,col=as.factor(x$hap.700.)) #Plots the majority data
library(calibrate)
y=data.frame(read.csv(file.choose()))   #Choose the second data.frame
textxy(y$HL,y$HW,y$hap.700.)  #adds labels of the outgroups on the same plot

但是,如果我试图在rgl包中使用textxy函数,我无法这样做。是否有任何可用于实现我想要做的3D图的等效包?

1 个答案:

答案 0 :(得分:0)

试试这个

library(rgl)
with(x, plot3d(HL, IN, HW, size = 10, col=as.factor(x$hap.700.)))
with(y, texts3d(HL, IN, HW, hap.700., cex = .5, adj = c(-.5, 0.5)))