首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用plot3D库中的scatter3D()函数标记点和定义组颜色

使用plot3D库中的scatter3D()函数标记点和定义组颜色
EN

Stack Overflow用户
提问于 2021-07-17 23:28:06
回答 1查看 31关注 0票数 0

我是R的新手,在可视化一些数据方面遇到了一些困难。我在这个表单中有一些数据:picture of data table

我使用上面的函数来对它们进行3d绘图:

scatter3D(x=data$X,y=data$Y,z=data$Depth,bty="g",pch=20,cex=2,ticktype="detailed")

现在我想将名称(标签)添加到每个点(例如A1、A2等)。并创建具有不同颜色的组(例如,点A1到A3蓝,点A4到A6红)。我不知道我该怎么做。

EN

回答 1

Stack Overflow用户

发布于 2021-07-18 06:27:29

由于您没有提供数据,因此不可能提供与您的问题直接相关的答案。始终建议使用dput()至少提供数据的一个子集。数据的图片不能提供有用的信息。还要指出您已加载的包。在这种情况下,您可能已经加载了包含scatter3D函数的plot3D

scatter3D的手册页(?scatter3D)提供了您所有问题的答案,但它很详细,很难理解。研究手册页面上提供的示例,以下内容似乎可以满足您的需求。它使用随R提供的USArrests数据集:

代码语言:javascript
复制
library(plot3D)
data(USArrests)
UP <- cut(USArrests$UrbanPop, breaks=quantile(USArrests$UrbanPop), include.lowest=TRUE)

这将加载数据集,并从变量UrbanPop创建一个分类变量。现在来看基本的情节:

代码语言:javascript
复制
with(USArrests, scatter3D(Murder, Assault, Rape, colvar = as.numeric(UP),
    col = c("red", "green", "blue", "violet"), theta = 60, phi = 20, 
    xlab = "Murder", ylab = "Assault", zlab = "Rape", main = "USA arrests", 
    cex = 1, pch=16, bty = "g", ticktype = "detailed", 
    d = 2, clab = "Urban Population", adj = 0.5, font = 2, 
    colkey=list(at = c(1.4, 2.1, 2.9, 3.6), side = 1, 
    addlines = TRUE, length = 0.75, width = 0.5,
    labels = c("1st Quart", "2nd Quart", "3rd Quart", "4th Quart"))))

这将创建基本的图,其中的圆圈由每个州的城市人口百分比的四分位数着色。获取用于标记图例(at=)的位置需要进行一些试验和错误。现在我们添加文本标签:

代码语言:javascript
复制
with(USArrests, text3D(Murder, Assault, Rape, colvar = as.numeric(UP),
    col = c("red", "green", "blue", "violet"), colkey=FALSE,
    labels = state.abb, cex = .75, adj=-.5, add=TRUE))

我们使用state.abb,它为每个州提供两个字符的缩写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68421879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档