繁体   English   中英

在 scatter3d 中显示点标签

[英]display point labels in scatter3d

我使用scatter3d函数在 R 中绘制了一个 3d 散点图。 现在,我想在 3d 散点图中的每个点上绘制标签,例如每个点旁边都有它的 ID,即“1”、“2”等。

这是我尝试过的:

library("car")
library("rgl")
scatter3d(geometry[,1],geometry[,2],geometry[,3] , surface=FALSE, labels = rownames(geometry), id.n=nrow(geometry))

教程说添加参数labels=rownames(geometry), id.n=nrow(geometry)应该在每个点上显示标签,但这不起作用。

编辑:

我在这里上传了坐标文件,你可以这样阅读

geometry = read.csv("geometry.txt",sep = " ")
colnames(geometry) = c("x","y","z")

编辑:

实际上,即使是教程中的示例也没有标记点,也没有生成显示的图。 包裹可能有问题。

scatter3d(x = sep.l, y = pet.l, z = sep.w, 
          surface=FALSE, labels = rownames(iris), id.n=nrow(iris))

如果您想使用 scatter3d 以外的任何其他功能,我可以为您提供快速解决方案。 这可以使用 plot3d 和 text3d 函数来实现。 我已经提供了如何实现它的基本代码块。 您可以根据需要对其进行自定义。

plot3d(geometry[,1],geometry[,2],geometry[,3])
text3d(geometry[,1],geometry[,2],geometry[,3],rownames(geometry))
points3d(geometry[,1],geometry[,2],geometry[,3], size = 5)

经过一番折腾,我明白了(如果你有兴趣,我也有 plot_ly 的方法)

test2 <- cbind(dataSet[,paste(d)],set.final$Groups,test)
X <- test2[,1]
Y <- test2[,2]
Z <- test2[,3]

# 3D plot with the regression plane

scatter3d(x = X, y = Y, z = Z, groups = test2$`set.final$Groups`,
          grid = FALSE, fit = "linear",ellipsoid = FALSE, surface=FALSE,
          surface.col = c("green", "blue", "red"),
          #showLabels(x = x, y = y, z = z, labels=test2$test, method="identify",n = nrow(test2), cex=1, col=carPalette()[1], location=c("lr"))
          #labels = test2$test,
          id=list(method = "mahal", n = length(test2$test), labels = test2$test)
          #id.n=nrow(test2$test)
)
          
          
  #identify3d(x = X, y = Y, z = Z, labels = test2$test, n = length(test2$test),  plot = TRUE, adj = c(-0.1, 0.5), tolerance = 20, buttons = c("right"))
  
  
  rglwidget()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM