2016-08-25 6 views
1

R studioを使用してplotlyRでmesh3Dプロットを作成しようとしていますが、メッシュにカラースケールを作成する方法に問題があります。mesh3d三角形の面を色づける方法Plotly

私は、コードを使用して素敵なメッシュプロットを持って、http://moderndata.plot.ly/trisurf-plots-in-r-using-plotly/http://moderndata.plot.ly/trisurf-plots-in-r-using-plotly/

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

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

は(私の上にちょうどそれプロット作るためにウェブサイトから見つけましたが、それは私が欲しいのメッシュカラースケールではありません)

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配列(すなわち、各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" 

または類似色をスケールします。

これをプロットする方法についてのご意見はありますか?ここ

はそれがここにinterrstedている人のために

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

答えて

2

を助けている場合ソリューション

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は次のように作成されました。

face$colour[zmean<= 0.5] <- "#800026" etc etc 
にzmeanの値を変換を測定ベクトルBI

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

の平均値にそれぞれの顔を変換するには、以下の機能を使用し

関連する問題