2015-07-10 2 views
2

Я использую пакет «dygraphs» в R, чтобы нарисовать гистограмму и присвоить зеленый цвет всем барам. Все отлично, когда я показываю диаграмму в R, но все бары становятся черными, когда я пытаюсь отобразить их в веб-браузере. Вот код (скрепка Javascript включен, потому что Google говорит, что я могу использовать, чтобы рисовать гистограммы с использованием dygraph):Dygraphs in R не показывает цвет при просмотре в браузере

library(xts) 
library(dygraphs) 
library(lubridate) 
library(dplyr) 

df <- data.frame(date = as.Date(13800:13810, origin = "1970-01-01"), 
        n = 1:11) 

graph_data <- xts(x = 1:10, order.by = as.Date(13801:13810, origin = "1970-01-01")) 

dygraph(graph_data) %>% 
    dyOptions(useDataTimezone = TRUE, 
       colors = c("008000"), 
       plotter = 
        "function barChartPlotter(e) { 
      var ctx = e.drawingContext; 
      var points = e.points; 
      var y_bottom = e.dygraph.toDomYCoord(0); 

      var bar_width = 1/2 * (points[1].canvasx - points[0].canvasx); 
      ctx.fillStyle = e.color; 

      for (var i = 0; i < points.length; i++) { 
      var p = points[i]; 
      var center_x = p.canvasx; // center of the bar 

      ctx.fillRect(center_x - bar_width/2, p.canvasy, 
      bar_width, y_bottom - p.canvasy); 
      ctx.strokeRect(center_x - bar_width/2, p.canvasy, 
      bar_width, y_bottom - p.canvasy); 
      } 
      }") 

я, возможно, придется использовать dygraphs рисовать полосы, потому что это быстро в рисунок тысячи баров ...

Любая помощь приветствуется!

+0

Как вы показываете сюжет в браузере? – Shiva

+0

Обычно два случая. Если я использую Shiny в R вместо RStudio, вывод будет HTML-файлом и отображается в браузере. В этом случае цвет dygraphs неверен, но окно, созданное RStudio, полностью соответствует цветам. Другим случаем является то, что когда я рисую диграфы в RStudio, в «зрителе» всегда есть опция, и вы можете показать вывод в браузере, нажав кнопку «второй справа». Я не совсем уверен, как использовать Javascript для отображения dygraphs в браузере, но я думаю, что есть способ разместить график в HTML-файле. –

ответ

1

Вам просто не хватает '#', пока вы устанавливаете цвет. Проверьте линию colors = c("008000"). Это должно быть colors = c("#008000").

+0

Спасибо за предложения! Я просто попробовал это, но проблема все еще существует. Возможно, где-то еще (тоже) сломан ... –

+0

То, что работает на моей машине отлично! Я использую код, который вы разместили выше, с моим предложенным изменением (просто вставляя #). – Shiva

Смежные вопросы