Добавить конкретную легенду в диаграмму R - PullRequest
0 голосов
/ 05 июня 2018

Кто-нибудь знает, как, если возможно добавить следующую легенду к диаграмме R plot_ly?

enter image description here

Пожалуйста, найдитеВоспроизводимый пример ниже

В этом примере цвет полос зависит от значения скорости: я хотел бы напечатать легенду, как упомянуто выше, а не только получить «трассу 0» ...

library(plotly)
library(data.table)

example_data <- data.table(x = c(1,2,3,4,5,6), y = c(7,9,4,3,8,9), velocity = c(0.6,1.4,5,4,0.2,1.1))
example_data$color <- cut(example_data$velocity,breaks = c(0,0.8,1.2,1.5,10),labels = c("lightgreen","darkgreen","yellow","red"))

plot_ly(data = example_data, x = ~ x,y =  ~y ,color =  ~ I(color),type = "bar") %>% 
  layout(showlegend = TRUE)

enter image description here

Большое спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете создать новый столбец с именами для легенды.И переупорядочить коэффициент с низкого (0 - 0,8) до высокого (> 1,5).

Вы можете попробовать это:

example_data <- data.table(x = c(1,2,3,4,5,6), y = c(7,9,4,3,8,9), velocity = c(0.6, 1.4, 5, 4, 0.2, 1.1), 
                           name = c("0 - 0.8", "1.2 - 1.5", " >1.5", " >1.5", "0 - 0.8", "0.8 - 1.2"))

example_data$name <- as.factor(example_data$name)
example_data$name <- factor(example_data$name, levels = c("0 - 0.8", "0.8 - 1.2", "1.2 - 1.5", " >1.5"))

pal <- c("lightgreen", "darkgreen", "yellow", "red")

plot_ly(data = example_data, x = ~ x,y =  ~y ,color =  ~as.factor(name), colors = ~pal, type = "bar") %>% 
  layout(showlegend = TRUE, legend = list(orientation = "h",
                                          xanchor = "center",  
                                          x = 0.5, y = 7))

enter image description here

...