Настройте цвета для boxplot с highcharter - PullRequest
1 голос
/ 13 марта 2019

У меня есть ящики на highcharter, и я хотел бы настроить оба

  • Цвет заливки
  • Цвет границы

Вот мой код

df = data.frame(cbind(categ = rep(c('a','b','c','d')),value = rnorm(1000)))

hcboxplot(var = df$categ, x = as.numeric(df$value)) %>% 
  hc_chart(type = "column")  %>% 
  hc_colors(c("#203d7d","#a0a0ed","#203d7e","#a0a0ad")) 

hc_colors работает только в том случае, если я поставлю var2 вместо var, но тогда прямоугольник будет уменьшен ...

Ответы [ 2 ]

1 голос
/ 14 марта 2019

API для стилей fillColor : https://api.highcharts.com/highcharts/series.boxplot.fillColor

И для "Цвет границы" : https://api.highcharts.com/highcharts/series.boxplot.color

Чистый пример JavaScript о том, какдля стиля и определения точек: https://jsfiddle.net/BlackLabel/6tud3fgx

И код R:

library(highcharter)
df = data.frame(cbind(categ = rep(c('a','b','c','d', 'e')),value = rnorm(1000)))
hcboxplot(var = df$categ, x = as.numeric(df$value)) %>% 
  hc_chart(type = "column", events = list(
    load = JS("function() {
        var chart = this;
        chart.series[0].points[2].update({
          color: 'red'
        })
        chart.series[0].points[4].update({
          x: 4,
          low: 600,
          q1: 700,
          median: 800,
          q3: 900,
          high: 1000,
          color: 'orange'
        })
      }")
  ))  %>% 
  hc_plotOptions(boxplot = list(
    fillColor = '#F0F0E0',
    lineWidth = 2,
    medianColor = '#0C5DA5',
    medianWidth = 3,
    stemColor = '#A63400',
    stemDashStyle = 'dot',
    stemWidth = 1,
    whiskerColor = '#3D9200',
    whiskerLength = '20%',
    whiskerWidth = 3,
    color = 'black'
  ))  %>% 
  hc_colors(c("#203d7d","#a0a0ed","#203d7e","#a0a0ad"))
0 голосов
/ 14 марта 2019

Поскольку ответа highcharter пока нет, я дам вам хотя бы базовое решение.

Во-первых, ваше определение фрейма данных несколько некорректно, скорее сделайте:

dat <- data.frame(categ=c('a','b','c','d'), value=rnorm(1000))

Теперь использовать boxplot довольно просто. border вариант цвета ваших границ. С опцией col вы также можете раскрасить заливки.

boxplot(value ~ categ, dat, border=c("#203d7d","#a0a0ed","#203d7e","#a0a0ad"), pars=list(outpch=16))

Придает

enter image description here

Примечание: См. это хорошее решение для дальнейшей настройки.

...