R Подробно, как добавить собственные имена и цвета только в легенду. - PullRequest
0 голосов
/ 14 марта 2019

Я использую r plotly для построения гистограммы стека и хочу заменить имеющуюся легенду пользовательской легендой на имена и цвета, которые я выберу. Нижняя часть (серый цвет) предназначена для первого источника информации о Intel. Верхняя часть столбцов окрашена в зависимости от того, какой источник (их три). Таким образом, светло-голубой будет source1, blue = source2 и darkblue = source3. Я хотел бы добавить пользовательскую легенду с четырьмя цветами:

'rgba(128,128,128,1)' = First Reported
'rgba(0,0,139,1)' = source1
'rgba(173,216,230,1)' = source2
'rgba(0,0,255,0.3)' = source 3

для легенды и оставьте остальную часть сюжета такой, какая она уже есть. Это мой код для сюжета:

library(plotly)
x <- c("source1","source2","source3","source4","source5","source6","source7")
y <- c(195760, 161,133199, 22597, 5249, 1276, 115)
y2 <-c(0,137, 36147,0,0,1153, 81)

xform <- list(categoryorder = "array",
              categoryarray = c("source1","source2","source3","source4","source5","source6","source7"))

plot_ly(x=x, y=y2, type='bar',name = 'First Reported',text = y2, textposition = 'inside',textfont = list(color = '#FFFFFF'),
        marker= list(color = c('rgba(128,128,128,1)','rgba(128,128,128,1)', 
                               'rgba(128,128,128,1)','rgba(128,128,128,1)', 
                               'rgba(128,128,128,1)','rgba(128,128,128,1)',
                               'rgba(128,128,128,1)'))) %>%

  add_trace(y=y, name='Not First To Report', text = y,
            marker = list(color = c('rgba(0,0,139,1)','rgba(0,0,139,1)',
                                    'rgba(173,216,230,1)','rgba(0,0,255,0.3)',
                                    'rgba(0,0,255,0.3)','rgba(173,216,230,1)',
                                    'rgba(173,216,230,1'))) %>%
  layout(title = "Counts by Intel Source",xaxis = xform, barmode = 'stack')

Вот как выглядит график:

enter image description here

...