2015-05-04 66 views
0

我想在rCharts中使用高圖的向下鑽取可能性。演示部分有一個例子,但返回頂層按鈕不顯示。有沒有解決方法?從rCharts GitHub的頁面https://github.com/ramnathv/rCharts/issues/602rCharts的高圖中的Drillup

工作示例(至少明細):

同樣的問題被要求在github

## Example 9 (not working properly) 
drill_function <- "#! function() { 
    var drilldown = this.drilldown; 
    function setChart(name, categories, data, color) { 
     chart.xAxis[0].setCategories(categories, false); 
     chart.series[0].remove(false); 
     chart.addSeries({ 
      name: name, 
      data: data, 
      color: color || 'black' 
     }, false); 
     chart.redraw(); 
    }; 
    if (drilldown) { // drill down 
     setChart(drilldown.name, drilldown.categories, drilldown.data, drilldown.color); 
    } else { // restore 
     setChart(name, categories, data); 
    } 
} !#" 

a <- rCharts::Highcharts$new() 
a$chart(type = "column") 
a$series(data = list(
    list(y = 15, drilldown = list(data = c(1, 2, 3))), 
    list(y = 20, drilldown = list(data = c(1, 2, 3)))), name = "test") 
a$xAxis(categories = c("Brand A", "Brand B")) 
a$plotOptions(column = list(cursor = 'pointer', point = list(events = list(click = drill_function)))) 
a 

回答

0

好,我發現了一個骯髒的黑客實現drillUp()。基本的想法是簡單地重新加載頁面。 drill_function應該像這樣修改:

drill_function <- "#! function() { 
    var drilldown = this.drilldown; 
    function setChart(name, categories, data, color) { 
    chart.xAxis[0].setCategories(categories, false); 
     chart.series[0].remove(false); 
     chart.addSeries({ 
      name: name, 
      data: data, 
      color: color 
     }, false); 
     chart.redraw(); 
    }; 
    if (drilldown) { // drill down 
     setChart(drilldown.name, drilldown.categories, drilldown.data); 
    } else { // restore 
     location.reload(); // <- this one reloads the page! 
     //setChart(name, categories, data,); 
    } 
} !#" 
+0

很好的解決方案。但是,如果您將此圖表插入您的閃亮應用程序或滑動演示文稿,刷新可能會很糟糕 –

+0

這是真的。如果有人有更好的主意。我希望聽到它:) – pfuhlert

+0

如果我在帶有多個圖表的針織html頁面上使用此腳本,則可以使用其他圖表和自定義設置。縮放不受影響。它們在drillup之後。 – pfuhlert