Измените столбцы hcharts () со сплошного на градиент - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь сделать мой highcharter график (для приборной панели R Shiny) красивее, сделав цвета градиентом между двумя оттенками зеленого.Я сделал следующий базовый пример, используя набор данных pokemon по умолчанию в highcharter.

library(shiny)
library(highcharter)

#Subset the data into the pokemon that are Grass and Poison
grass_subset <- subset(pokemon, type_1 == "grass" & type_2 == "poison")

#Define the chart parameters
grass_poison_chart <- hchart(grass_subset, type = "column", hcaes(x=pokemon, y=base_experience))

#Define theme elements
myTheme <- hc_theme(
  colors = c('#658D1B', '84BD00', 'white'),
  chart = list(
    backgroundColor = "white"    
  ))

#Apply theme to grass_poison_chart
grass_poison_chart %>% hc_add_theme(myTheme)

Урожай

image

Проблема в том, что я не знаю, как сделать бары окрашенными с градиентом. Я попытался изменить свое определение myTheme на следующее:

 myTheme <- hc_theme(
   color = list(
     linearGradient = (0,0,0,1),
     stops = (0, '#658D1B'),(1, '#84BD00')
   )
  )

В наивной попытке просто скопировать синтаксис highcharts:

color: {
    linearGradient: { x1: 0, x2: 0, y1: 0, y2: 1 },
    stops: [
        [0, '#658D1B'],
        [1, '#84BD00']
    ]
}

и изменить его наскобки, но я искренне не знал, куда идти отсюда.Я знаю, что я, вероятно, не собирался работать (и это не так), но возможно ли что-то подобное в highcharter?Чего мне не хватает?

1 Ответ

0 голосов
/ 13 февраля 2019

Извините за поздний ответ, у меня возникли некоторые проблемы с установкой R.

Первым делом я попытался написать код на чистом JS.Эта часть была простой: https://jsfiddle.net/BlackLabel/byht9jd6

Я думал, что реализовать ее в R немного сложнее, но ... эта часть тоже была легкой :) Вот код:

library(shiny)
library(highcharter)

#Subset the data into the pokemon that are Grass and Poison
grass_subset <- subset(pokemon, type_1 == "grass" & type_2 == "poison")

#Define the chart parameters
grass_poison_chart <- hchart(grass_subset, type = "column", hcaes(x=pokemon, 
y=base_experience)) %>%
  hc_plotOptions(
    column = list(
      color = list(
        linearGradient = list(x1 = 0, x2 = 0, y1 = 0, y2 = 1),
        stops = list(
          c(0, '#658D1B'),
          c(1, '#84BD00')
        )
      )
    )
  )

#Apply theme to grass_poison_chart
grass_poison_chart %>% hc_add_theme(myTheme)
...