Mit plotly
möchte ich jede Oberfläche eine andere Farbe haben.plotly - verschiedene Farben für verschiedene Oberflächen
library(plotly)
t1 <- seq(-3, 3, 0.1); t2 <- seq(-3, 3, 0.1)
p1 <- matrix(nrow = length(t1), ncol = length(t2))
p2 <- matrix(nrow = length(t1), ncol = length(t2))
p8a1 <- 1.2
p8a2 <- 1
p8d <- -1
p8b1 <- 0.7
p8b2 <- 0.6
for (i in 1:length(t2)) {
for (j in 1:length(t1)) {
p1[i, j] <- 1/(1 + exp(-1.7 * (p8a1 * t1[j] + p8a2 * t2[i] + p8d)))
p2[i, j] <- (1/(1 + exp(-1.7 * p8a1 * (t1[j]- p8b1)))) *
(1/(1 + exp(-1.7 * p8a2 * (t2[j]- p8b2))))
}
}
df1 <- list(t1, t2, p1)
df2 <- list(t1, t2, p2)
names(df1) <- c("t1", "t2", "p1")
names(df2) <- c("t1", "t2", "p2")
m <- list(l = 10, r = 10, b = 5, t = 0, pad = 3)
p <- plot_ly(color = c("red", "blue")) %>%
add_surface(x = df1$t1,
y = df1$t2,
z = df1$p1,
opacity = 0.8) %>%
add_surface(x = df2$t1,
y = df2$t2,
z = df2$p2,
opacity = 1) %>%
layout(autosize = F, width = 550, height = 550, margin = m,
scene = list(xaxis = list(title = "Theta 1"),
yaxis = list(title = "Theta 2"),
zaxis = list(title = "P")),
dragmode = "turntable")
p
Leider kann ich die Farben dieser beiden Oberflächen nicht ändern. Ich habe versucht, color = I("red")
und color = I("blue")
Argumente in add_surface
hinzuzufügen, aber dies nur Farbskala von rot nach blau für beide Oberflächen geändert.
Ich habe auch versucht color = "red"
in plot_ly()
hinzuzufügen und inherit = F
in der zweiten add_surface
hinzuzufügen. Dies änderte nur die erste Oberfläche, aber nur die gelbe Standardfarbe in rot. Ich hätte gerne eine Oberfläche rot und eine zweite blau.
Nun, das war ein bisschen schwierig! Vielen Dank, es funktioniert perfekt! – Adela