【问题标题】:Defining color of 3D points plot based on distance in R根据R中的距离定义3D点图的颜色
【发布时间】:2013-04-26 08:05:48
【问题描述】:

假设我生成了一些 3D 高斯样本,并使用 plot3D 绘制这些样本。我想根据它们到云中心的距离为这些点着色。我的意思是我想给它们一个介于 white(= 远离中心)和 somecolor(非常接近中心)之间的颜色。

我知道诸如 colorRamp 和 colorRampPalette 之类的功能,但我不确定如何在这种特定情况下使用它们。任何帮助将不胜感激!

编辑这是我目前所拥有的:

library(rgl)

#generate two 3D point clouds
cloud1 <- rmnorm(100,mean=c(1,1,1),varcov=diag(.25,3)) 
cloud2 <- rmnorm(75, mean=c(3,3,3),varcov=diag(.5,3))

plot3d(cloud1,box=F)
points3d(cloud2,col="red")

结果图:

但现在我想让远离中心的点变得不那么黑/红。

【问题讨论】:

  • 你有一些示例代码吗?您也可以尝试对您的值进行排名,而不是在绘图时添加诸如 color=DF$rank 之类的内容。
  • 抱歉,我已经添加了代码和情节。

标签: r colors plot


【解决方案1】:

你可以试试这样的:

cloud1 <- rmnorm(100,mean=c(1,1,1),varcov=diag(.25,3))
# for an euclidean distance but a manhalobis distance should be more appropriated
aux <- colSums((t(cloud1)-colMeans(cloud1))^2) 
col1 <- colorRampPalette(c("red", "white"))
# i used quantiles but equal interval could be used to
cols1 <- col1(11)[findInterval(aux, quantile(aux, seq(0,1,0.1)), right=T)]
# with equal interval
cols1 <- col1(11)[findInterval(aux, seq(min(aux), max(aux), le=10))]
plot3d(cloud1,box=F, col=cols1)

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 2021-02-15
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2017-01-25
    相关资源
    最近更新 更多