2017-01-22 8 views
-1

Hier verwenden ist meine DatenColorbar in der Legende, wenn plotly

set.seed(42) 
mydata = data.frame(A = rnorm(20), B = rnorm(20), Index = sample(190:400,20))  

Ich versuche, die Daten in 20 verschiedenen Abständen auf dem Index Wert basierend aufzuteilen und dann die Streupunkte Farbe value nach ihrem Intervall. Unten ist mein Code. Es funktioniert nicht perfekt.

cols = colorRampPalette(c("red", "black"), space = "rgb")(20) 
mydata$interval = cut(mydata$Index,breaks = 20) 
mydata$cols = cols[mydata$interval] 
require(plotly) 
x = list(title = "A") 
y = list(title = "B") 
plot_ly(mydata, x = ~A, y = ~B, color = ~cols, type = "scatter", 
         mode = 'markers', hoverinfo = 'text', 
         text = ~paste(interval)) %>% 
         layout(xaxis = x, yaxis = y) 

Wie erhalte ich eine colorbar in der Legende, wo die Farben basieren auf Index Wert.

Antwort

2

Suchen Sie diese:

plot_ly(mydata, x = ~A, y = ~B, type = "scatter", 
     mode = 'markers', hoverinfo = 'text', colors = colorRampPalette(c("red", "black"), space = "rgb")(20), color = ~Index, text = ~paste(interval), marker = list(size=14)) %>% 
     layout(xaxis = x, yaxis = y) %>% 
     colorbar(title = "My Legend") 
+1

@Darshan Baral, meine bearbeiten sehen – MLavoie