R Плотно изменяя цвет на столбцы в части add_bars - PullRequest
0 голосов
/ 21 декабря 2018

Итак, я создал график Plotly в R, в котором есть линии для среднего, верхнего и низкого доверия.Я добавил строку «add_bars» для подсчета.Это то, что я ищу.Я могу изменить цвет линий, но не диаграмму.Это мой код:

plot_ly(df, x = ~Date) %>%
  add_lines(y = ~Mean, name = 'Mean', line = list(color = 'rgb(0, 0, 0)')) %>%
  add_lines(y = ~X95_upper_conf, name = 'Upper Confidence', line = list(color = 'rgb(205, 12, 24)', width = 4, dash = 'dot')) %>%
  add_lines(y = ~X95_lower_conf, name = 'Lower Confidence', line = list(color = 'rgb(205, 12, 24)', width = 4, dash = 'dot')) %>%
  add_bars(y = ~Count,name = 'Count', barplot = list(color = 'rgb(0, 0, 0)')) %>%
    layout(
      margin = list(b = 190, l = 50)) # to fully display the x and y axis labels

Я попытался добавить:

barplot = list(color = 'rgb(0, 0, 0)')

и

line = list(color = 'rgb(0, 0, 0)')

Но ни один из них не работает.Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 21 декабря 2018

Вы можете определить цвет непосредственно в add_bars, но вы должны обернуть его в выражение I(), чтобы увидеть введенный вами цвет.В противном случае плотно пытается создать цветовую палитру и будет использовать цвета по умолчанию.И вы также можете определить цвет в аргументе marker add_bars.

library(plotly)

plot_ly(data=iris, x=~Species) %>% 
  add_lines(y = ~Sepal.Length) %>% 
  add_bars(y = ~Sepal.Width, color = I('red'))


plot_ly(data=iris, x=~Species) %>% 
  add_lines(y = ~Sepal.Length) %>% 
  add_bars(y = ~Sepal.Width, color = 'blue')

plot_ly(data=iris, x=~Species) %>% 
  add_lines(y = ~Sepal.Length) %>%
  add_bars(y = ~Sepal.Width, color = sample(c('yellow','red', 'blue'), 150, T))

plot_ly(data=iris, x=~Species) %>% 
  add_lines(y = ~Sepal.Length) %>% 
  add_bars(y = ~Sepal.Width, marker = list(color='rgb(0, 0, 0)'))


plot_ly(data=iris, x=~Species) %>% 
  add_lines(y = ~Sepal.Length) %>% 
  add_bars(y = ~Sepal.Width, marker = list(color="#4286f4"))


plot_ly(data=iris, x=~Species) %>% 
  add_lines(y = ~Sepal.Length) %>% 
  add_bars(y = ~Sepal.Width, color = rainbow(nrow(iris)))
...