2017-10-23 2 views
1

Ich versuche, eine 3D-Oberfläche mit plot_ly-Paket zu plotten.colorscale = "Regenbogen" in plot_ly funktioniert nicht

x = c(1:10) 
y = c(1:10) 
z = matrix(runif(100),ncol = 10) 
z_col = matrix(runif(100),ncol = 10) 

plot_ly(x = ~x, y = ~y, z = ~z, surfacecolor =~ z_col, 
     type = "surface", colorscale = "Rainbow") 

Ich erwarte von der die Farbe für die Farbleiste wird so sein: enter image description here

Dies ist jedoch, was ich bekommen: enter image description here

Kann mir jemand zeigen, wie dieses Problem zu zeigen, ?

+0

gibt * Oberflächen * Plottyp ist ** nicht akzeptieren palete Namen Strings ** wie Streu Plots zum Beispiel. Sie können es kompilieren, indem Sie versuchen, eine beliebige andere Namenssorte wie 'Greys, Portland, Jet, Hot, Blackbody, Erde, Electric usw. 'zu setzen. Beachten Sie, dass mit den Farben nichts passieren wird. –

Antwort

1

Vom documentation:

Farbkarte (Farbkarte)
Stellt die Farbkarte. Die Farbskala muss ein Array sein, das Arrays enthält, die einem rgb, rgba, hex, hsl, hsv oder einer benannten Farbzeichenfolge einen normalisierten Wert zuordnen. Es ist mindestens eine Zuordnung für die niedrigsten Werte (0) und die höchsten Werte (1) erforderlich. Zum Beispiel [[0, 'rgb(0,0,255)', [1, 'rgb(255,0,0)']].

Sie können Ihre eigene Regenbogen Farbkarte definieren, indem Sie

colorscale = cbind(seq(0, 1, by=1/(length(z) - 1)), rainbow(length(z))) 

, die Sie

enter image description here

Verwandte Themen