r - mesh3d如何为三角形的面着色 R Plotly

标签 r plotly r-plotly

我正在尝试使用 R studio 在plotlyR 中创建网格3D 图,但我在如何为网格创建色阶方面遇到问题。

我使用代码有一个很好的网格图,

zmean <- apply(faces, MARGIN=1, function(row){mean(points[row,3])})

facecolor = colour_ramp(
    brewer_pal(palette="RdBu")(9)
)(rescale(x=zmean))

(上面是我从一个网站找到的,只是为了绘制它,但它不是我想要的网格色标)http://moderndata.plot.ly/trisurf-plots-in-r-using-plotly/http://moderndata.plot.ly/trisurf-plots-in-r-using-plotly/

p <- plot_ly(
    x = points[, 1], y = points[, 2], z = points[, 3],
    i = faces[, 1]-1, j = faces[, 2]-1, k = faces[, 3]-1,
    type = "mesh3d",
    facecolor = "red",
)

p

我不太确定面部颜色、强度或色阶的作用,但我想根据一个名为 bi 的值将不同的色阶映射到网格上,该值是我为 xyz 中的每个点测量的-array(即,每个 x=points[, 1], y=points[, 2], z=points[, 3] 点在我的数据框中分配有 bi 值)。我想缩放颜色

vert$colour[vert$bi<= 0.5] <- "red"
vert$colour[vert$bi> 0.5 & vert$bi<=1.5] <- "green"
vert$colour[vert$bi>= 1.5] <- "purple"

或类似的混合轮廓方式。

关于如何绘制这个有什么想法吗?

如果有帮助的话,这是 plotly

https://plot.ly/~neilsrini/1377/points-2-vs-points-1/

最佳答案

对于那些对此感兴趣的人来说,这是解决方案

    p1 <- plot_ly(
    x = points[, 1], y = points[, 2], z = points[, 3],

    i = faces[, 1]-1, j = faces[, 2]-1, k = faces[, 3]-1,

    type = "mesh3d",

   facecolor = face$colour

    )

以上是要绘制的代码。 face$color 的制作方法如下。

使用下面的函数将每个面转换为测量向量bi的平均值

    zmean <- apply(faces, MARGIN=1, function(row){mean(bipts[row,1])})

然后将 zmean 的值转换为颜色

    face$colour[zmean<= 0.5] <- "#800026" etc etc

关于r - mesh3d如何为三角形的面着色 R Plotly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39156281/

相关文章:

从语料库中删除电子邮件 ID

r - 将积分值保存在 R 中的数组中

python - 使用 rpy2 从 python 调用 R 脚本

r - 如何在同一个图表上组合一条线和散点图?

javascript - 通过单击堆叠的条形图打开选项卡

r - 在给定大小的 powerpoint 幻灯片中绘制 ggplot2 图 - R

python - x 轴上的偏移绘图跟踪

Python/Plotly 甘特图 : a marker to indicate current date in timeline?

python - 为什么 Plotly 不能在 Jupyter Lab 上运行?

r - plotly 旭日着色