2017-12-21 4 views
0

Highcharter의 Polar 그래프를 사용 중이며 기준에 따라 색상을 변경할 수 있는지 궁금합니다. 그래프를 사용하여 예산 대 지출을 살펴 봅니다. 예산이 < 인 경우 녹색으로 표시하고 싶습니다. 지출액> 예산을 초과하면 항목이 빨간색으로 표시됩니다. 이것이 가능한가?R Highcharter : 조건부 색상이있는 극좌표 그래프

'Logistics'및 'IT & Telecom'지출은 녹색으로 표시되고 다른 모든 지출 범주는 빨간색으로 표시됩니다.

이상 또는 미만 계획이 지속적으로 변하기 때문에 답변이 동적이어야합니다.

아래는 간단한 코드 버전입니다.

library (shiny) 
library (highcharter) 

hc <- highchart() %>% 
    hc_chart(polar = TRUE) %>% 
    hc_title(text = "Budget vs Spending") %>% 
    hc_xAxis(categories = c("Energy", "Facilties", "IT & Telecom", 
          "Logistics", "Office Products", "Plant Consumables", 
          "Temp Labor", "Travel", "Other"), 
      tickmarkPlacement = "on", 
      lineWidth = 0) %>% 
    hc_yAxis(gridLineInterpolation = "polygon", 
      lineWidth = 0, 
      min = 0) %>% 
    hc_series(
    list(
     name = "Spend", 
     data = c(50000, 39000, 42000, 31000, 26000, 14000, 26000, 26000, 26000), 
     pointPlacement = "on", 
     type = "column" 
    ), 
    list(
     name = "Budget", 
     data = c(43000, 19000, 60000, 35000, 17000, 10000,10000,10000,10000), 
     pointPlacement = "on", 
     type = "line" 
    ) 
) 

hc 
+0

내가 R에 대해 잘 모른다 도움이되지만에서 Highcharts JS 업데이트를 담당하는 코드를'chart.events.render' 속성에 넣습니다 : http://jsfiddle.net/kkulig/88mb6mq8/'redrawEnabled' 플래그를 사용하여 차트를 다시 그려서 발생하는 무한 재귀 루프를 방지합니다 이 이벤트 내에서 ('render'는'r edraw' 이벤트). –

답변

1

안녕하세요이

library (shiny) 
library (highcharter) 
library(tidyverse) 
hc <- highchart() %>% 
    hc_chart(polar = TRUE) %>% 
    hc_title(text = "Budget vs Spending") %>% 
    hc_xAxis(categories = c("Energy", "Facilties", "IT & Telecom", 
          "Logistics", "Office Products", "Plant Consumables", 
          "Temp Labor", "Travel", "Other"), 
      tickmarkPlacement = "on", 
      lineWidth = 0) %>% 
    hc_yAxis(gridLineInterpolation = "polygon", 
      lineWidth = 0, 
      min = 0) %>% 
    hc_series(
    list(
     name = "Spend", 
     data = c(50000, 39000, 42000, 31000, 26000, 14000, 26000, 26000, 26000), 
     pointPlacement = "on", 
     colorByPoint = TRUE, 
     type = "column", 
     colors = ifelse(c(50000, 39000, 42000, 31000, 26000, 14000, 26000, 26000, 26000) > c(43000, 19000, 60000, 35000, 17000, 10000,10000,10000,10000),"#F00","#0F0") 
    ), 
    list(
     name = "Budget", 
     data = c(43000, 19000, 60000, 35000, 17000, 10000,10000,10000,10000), 
     pointPlacement = "on", 
     type = "line" 
    ) 
) 

hc 

희망 같은 colors을 설정 colorByPointTRUE하고 사용 ifesle을 설정하려면이

+0

완벽하게 작동합니다. 감사합니다. – Kevin