2016-04-05 8 views
1

scatter3Dplot3Dパッケージから苦労しています。R - 3Dplot - 透過条件を追加する

私のcolvarに透明度のしきい値を設定したいと考えています。たとえば、以下では、colvar<100(赤から緑の中間まで)のすべての点を完全に透明にする必要があります。私はなぜコルキーの半分(そして対応する;))が消えてしまうのか分からない。 アイデアはありますか?ここで

enter image description here

私の件のデータです: http://s000.tinyupload.com/?file_id=00763309738825363461

そして、私のコード:

err_tab2=read.table("Err_tab.txt",header=T) 

colfunc<-colorRampPalette(c("red","yellow","green","turquoise2","blue")) 


    par(mfrow = c(1, 1)) 
    panelfirst <- function(pmat) { 
    zmin <- min(err_tab2$z) 
    XY <- trans3D(err_tab2$x, err_tab2$y, 
        z = rep(zmin, nrow(err_tab2)), pmat = pmat) 
    scatter2D(XY$x, XY$y, colvar = err_tab2$colour, pch = ".", 
       cex = 1, add = TRUE, colkey = FALSE) 
    xmin <- min(err_tab2$x) 
    XY <- trans3D(x = rep(xmin, nrow(err_tab2)), y = err_tab2$y, 
        z = err_tab2$z, pmat = pmat) 
    scatter2D(XY$x, XY$y, colvar = err_tab2$colour, pch = ".", 
       cex = 1, add = TRUE, colkey = FALSE) 
    } 

    with(err_tab2, scatter3D(x = x, y = y, z = z, colvar= (colour), col=alpha.col(colfunc(length(colour)), 
                       alpha =colour<100), 
          pch = 16, cex = 1, xlab = "x", ylab = "y", 
          zlab = "z", clab = c(""), 
          main = paste("Model"), ticktype = "detailed", 
          panel.first = panelfirst, theta = 330,phi=10, y = 2, 
          colkey = list(length = 0.5, width = 0.5, cex.clab = 0.75)) 
) 

注:

:実際には私のような各点の条件を持っていると思います
alpha=(err_tab2$colour-min(err_tab2$colour))/(max(err_tab2$colour)-min(err_tab2$colour))>0.2 

私の考えでは、これは、 "色"がセットの最初の20%に属するすべてのポイントを隠すべきです。 F=0=100%transparencyおよびT=1=100%opacityです。

enter image description here

任意のアイデア:

しかし、私はこれをしようと、私は正反対を得るには、(私が推測する前の問題に加えましたか)? :)

答えて

0

これは私が探していた答えです。 セットの最初の20%の値を持つポイントのみをフィルタリングするには:

col_level=sort(as.numeric(levels(as.factor(err_tab2$colour)))) 

with(err_tab2, scatter3D(x = x, y = y, z = z, colvar= (colour), col=alpha.col(colfunc(length(colour)), 
           alpha =(col_level-min(col_level))/(max(col_level)-min(col_level))<0.20)), 
           pch = 16, cex = 1, xlab = "x", ylab = "y", 
           zlab = "z", clab = c(""), 
           main = paste("Model"), ticktype = "detailed", 
           panel.first = panelfirst, theta = 330,phi=10, y = 2, 
           colkey = list(length = 0.5, width = 0.5, cex.clab = 0.75)) 
) 
関連する問題