#r #tooltip #shiny #rcharts
#r #всплывающая подсказка #блестящий #rcharts
Вопрос:
Я простой программист на языке R, почти не имеющий опыта программирования в HTML или javascript, поэтому мне трудно понять оболочки для кода настройки всплывающих подсказок.
У меня есть 2 временных ряда, которые я построил с помощью rCharts lineWithFocusChart, теперь я хочу настроить всплывающую подсказку так, чтобы она выглядела следующим образом: http://shiny.rstudio.com/gallery/nvd3-line-chart-output.html
Вот мой код на данный момент:
shinyServer(function(input, output) {
output$myChart <- renderChart({
select<-as.numeric(input$radioTS)
out <- data.frame(Actuals[,select], Fits[,select], mmmyyyy)
colnames(out) <- c("Actuals","Fits","Date")
data<-melt(out,id.vars = 'Date')
data$Date <- as.numeric(as.POSIXct(data$Date)) * 1000
p1 <- nPlot(
value ~ Date,
group = 'variable',
data = data,
type = 'lineWithFocusChart',
width = 650,
height = 500
)
p1$addParams(dom = 'myChart')
p1$xAxis(tickFormat = "#!function(d) {return d3.time.format('%b %Y')(new Date(d))}!#")
p1$x2Axis(tickFormat = "#!function(d) {return d3.time.format('%Y')(new Date(d))}!#")
p1$yAxis(tickFormat = "#!function(d) {return d3.format('0,.0')(d)}!#")
return(p1)
})
})
Комментарии:
1. Пожалуйста, предоставьте минимальный воспроизводимый пример.
Ответ №1:
В блестящем примере, на который ссылается ссылка, используется interactiveGuideline
функция nvd3. Вы можете использовать это в rCharts p1$chart(useInteractiveGuideline=TRUE)
, но из-за этой проблемы lineWithFocusChart
с nvd3 он еще не предлагает эту функциональность, поэтому пока мы будем ограничены lineChart
.
К сожалению, nvd3 в настоящее время не поддерживает настройку interactiveGuideline, поскольку этот запрос на извлечение еще не принят. Тем не менее, вы можете получить довольно приличную всплывающую подсказку, присвоив ей правильное имя, как показано в этом примере.
shinyServer(function(input, output) {
output$myChart <- renderChart({
select<-as.numeric(input$radioTS)
out <- data.frame(Actuals[,select], Fits[,select], mmmyyyy)
colnames(out) <- c("Actuals","Fits","Date")
data<-melt(out,id.vars = 'Date')
data$Date <- as.numeric(as.POSIXct(data$Date)) * 1000
p1 <- nPlot(
value ~ Date,
group = 'variable',
data = data,
type = 'lineChart', # see explanation for why not lineWithFocusChart
width = 650,
height = 500
)
p1$addParams(dom = 'myChart')
p1$xAxis(tickFormat = "#!function(d) {return d3.time.format('%b %Y')(new Date(d))}!#")
#commented x2Axis out since only lineChart
#p1$x2Axis(tickFormat = "#!function(d) {return d3.time.format('%Y')(new Date(d))}!#")
p1$yAxis(tickFormat = "#!function(d) {return d3.format('0,.0')(d)}!#")
p1$chart(useInteractiveGuideline = TRUE)
return(p1)
})
})
Комментарии:
1. Большое вам спасибо! Я видел это раньше:
p1$chart(useInteractiveGuideline = TRUE)
но я не понимал, что это недоступно специально для lineWithFocusChart. Последующий вопрос: знаете ли вы, как добавить и вертикальную линию?