Ich habe Probleme mit scatter3D
von plot3D
Paket.R - 3Dplot - Hinzufügen einer Bedingung auf Transparenz
Ich möchte in der Lage sein, eine Transparenzschwelle auf meine Colvar setzen. Zum Beispiel, unten, sollte ich jeden Punkt mit der colvar<100
(also von rot bis zur Mitte von grün) voll transparent haben. Ich verstehe nicht, warum nicht die Hälfte des colkey (und die entsprechenden Punkte;)) verschwinden. Haben Sie eine Idee?
Hier sind meine Daten: http://s000.tinyupload.com/?file_id=00763309738825363461
Und mein Code:
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))
)
Hinweis:
: In der Tat würde ich wie eine Bedingung für jeden Punkt haben möchtealpha=(err_tab2$colour-min(err_tab2$colour))/(max(err_tab2$colour)-min(err_tab2$colour))>0.2
In meinen Gedanken, Dies sollte jeden Punkt verbergen, für den "Farbe" zu den ersten 20% des Satzes gehört. Weil F=0=100%transparency
und T=1=100%opacity
.
Aber wenn ich das versuche ich das genaue Gegenteil erhalten (zusätzlich zu vorherigem Problem, das ich denke):
eine Idee? :)