R Shiny: установить экстремумы в Highcharts (rCharts) при загрузке страницы
У меня есть блестящее приложение, которое использует библиотеку rCharts для создания диаграммы Highcharts. Когда приложение запускается впервые, я бы хотел, чтобы приложение было увеличено до определенного региона.
Метод Highcharts - это setExtremes() http://api.highcharts.com/highcharts
Ниже приведен минимальный пример, который можно запустить в интерактивном R:
library(shiny)
library(rCharts)
runApp(list(
ui = pageWithSidebar(
headerPanel("title"),
sidebarPanel('sidebar'),
mainPanel(showOutput("testPlot", "Highcharts"))
),
server = function(input, output, session) {
output$testPlot <- renderChart2({
hc <- Highcharts$new()
hc$xAxis(categories=c('Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su',
'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'))
hc$series(data=c(7, 1, 4, 2.5, 3.25, 2.875, 3.0625, 3, 3, 3, 3, 3, 3, 3))
setX <- "#! function() {
var cht = this;
var chtXAxis = this.xAxis[0];
setTimeout(function() {
console.log(chtXAxis.getExtremes().max); // correctly shows 13 in the console
chtXAxis.setExtremes(2, 10);
console.log(chtXAxis.getExtremes().max); // nothing in the console
cht.showResetZoom();
}, 2000)
} !#"
hc$chart(type="spline", zoomType='xy', events=list(load=setX))
hc$set(domID="testPlot")
return(hc)
})
}
))
В консоли видно, что метод getExtremes() успешен, но метод setExtremes() не работает. Понятия не имею почему.
Может кто-нибудь помочь исправить это, или дать рекомендацию о том, как лучше установить крайние значения при загрузке?
1 ответ
Ответ Victorp показал, что в моем коде нет ничего принципиально неправильного, но rCharts действительно был стар. Приведенный выше код должен работать, если ваша версия rCharts более новая, чем сегодняшняя дата, возможно, также с некоторыми более старыми версиями. Я не знаю, над каким выпуском я работал, но прошло бы несколько месяцев.
Спасибо, Викторп.