RCharts - Выбор цвета по столбчатой ​​диаграмме категорий

У меня вопрос по RCharts (в целом, спрос на highchart). Я пытаюсь построить столбчатую диаграмму с 2 категориями и 2 полосами для каждой категории, это довольно просто.

Но я не могу отображать цвета, которые хочу. По умолчанию каждая полоса имеет один и тот же цвет для каждой категории, но я бы хотел, чтобы каждая полоса в одной категории имела один и тот же цвет. Я не могу этого сделать.

Мой код R ниже:

col_chart <- Highcharts$new()
col_chart$xAxis(categories=list('A', 'B') ) 
col_chart$series(list(list(type="column",
                             name="1",data=c(6,7))
                        ,list(type="column",
                              name="2",data=c(1,3))
                         ))

Как всем там нравится, это очень минимальный воспроизводимый пример. Здесь каждая модальность «1» синего цвета, а каждая модальность «2» - темного. Я хотел бы провести различие между А и Б, а не между 1 и 2.

Заранее благодарю вас за вашу помощь.


person Mez13    schedule 02.08.2017    source источник


Ответы (1)


Первое решение.

Можно указать цвет каждой полосы с помощью параметров colors и colorByPoint:

library(rCharts)
col_chart <- Highcharts$new()
col_chart$xAxis(categories=list('A', 'B') ) 
col_chart$series(list(
    list(type="column", name="1",data=c(6,7), 
         colors=list('#7cb5ec', '#FF0000'), colorByPoint=TRUE),
    list(type="column", name="2",data=c(1,3), 
         colors=list('#7cb5ec', '#FF0000'), colorByPoint=TRUE)
))
col_chart

введите описание изображения здесь

Второе решение.

col_chart <- Highcharts$new()
col_chart$xAxis(categories=list('A', 'B') ) 
col_chart$series(list(
    list(type="column", name="1", 
         data=list(list(color='#7cb5ec',y=6),list(color='#FF0000',y=7))
    ),
    list(type="column", name="2", 
         data=list(list(color='#7cb5ec',y=1),list(color='#FF0000',y=3))
    )
))
col_chart

введите описание изображения здесь

person Marco Sandri    schedule 02.08.2017
comment
Это очень хорошо работает. Я думал, что пробовал это, но нет, я поставил colorByPoint = TRUE в параметрах plotOptions, а не непосредственно в серии. Спасибо. - person Mez13; 03.08.2017