0

假设我生成了一些 3D 高斯样本,并使用 plot3D 绘制这些样本。我想根据它们到云中心的距离为这些点着色。我的意思是我想给它们一个介于白色(= 远离中心)和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")

结果图:

呜呜

但现在我想让远离中心的点减少黑色/红色。

4

1 回答 1

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)

高温高压

于 2013-04-26T09:02:54.213 回答