Javascript 用于R/S的dygraphs包中的系列突出显示图例
我正在R中编写一个闪亮的应用程序,它使用动态图软件包 该应用程序具有一个交互式绘图功能,可使用Javascript 用于R/S的dygraphs包中的系列突出显示图例,javascript,css,r,shiny,dygraphs,Javascript,Css,R,Shiny,Dygraphs,我正在R中编写一个闪亮的应用程序,它使用动态图软件包 该应用程序具有一个交互式绘图功能,可使用dyHighlight()函数突出显示所选系列。但是,由于数据涉及1000列,因此图例将显示1000个系列 下面是一个只有2列的最小代码示例: ui <- fluidPage( # This CSS code should solve the problem, but somehow does not. # To test, replace CSS in tags$style(...)
dyHighlight()
函数突出显示所选系列。但是,由于数据涉及1000列,因此图例将显示1000个系列
下面是一个只有2列的最小代码示例:
ui <- fluidPage(
# This CSS code should solve the problem, but somehow does not.
# To test, replace CSS in tags$style(...) with this code
#.dygraph-legend { display: none; }
#.dygraph-legend .highlight { display: inline; }
# CSS to highlight selected series in legend.
# Does not solve problem, but is best alternative for now.
tags$style("
.highlight {
border: 2px solid black;
background-color: #B0B0B0;
}
"),
sidebarLayout(
sidebarPanel(),
mainPanel(dygraphOutput("plot"))
)
)
server <- function(input, output) {
set.seed(123)
data <- matrix(rnorm(12), ncol = 2)
data <- ts(data)
# Workaround for what might be a bug
# Reference: https://stackoverflow.com/questions/28305610/use-dygraph-for-r-to-plot-xts-time-series-by-year-only
data <- cbind(as.xts(data[,1]), as.xts(data[,2]))
colnames(data) <- c("Series 1", "Series 2")
#print(data) # Uncomment to view data frame
output$plot <- renderDygraph({
dygraph(data) %>%
# Highlighting series
dyHighlight(data,
highlightCircleSize = 2,
highlightSeriesBackgroundAlpha = .5,
highlightSeriesOpts = list(strokeWidth = 2))
})
}
shinyApp(ui = ui, server = server)
ui这应该让您开始:
图例具有.dygraph图例类。使用highlightSeriesOpts时,所选系列“将获得一个.highlight类。这可用于仅显示图例中的单个系列
因此,您必须创建CSS文件并将其添加到图形中:
这应该可以工作,但由于某种原因,。动态曲线图图例
正在接管,并且没有显示图例
.dygraph-legend { display: none; }
.highlight {
display: inline;
}
替代性:
.dygraph-legend { display: all; }
.highlight {
display: inline;
background-color: #B0B0B0;
}
将其另存为*.css文件:
dygraph(data)%>% dyHighlight() %>% dyCSS("path to css")
这并不能解决问题,但会为所选系列添加一个亮点:
您尝试用可复制示例解决问题是有用的。您应该有一个timeseries对象,您的数据不是,请提供相关数据。非常感谢您的帮助,JavK。建议的CSS代码运行良好。(它现在被纳入OP)但正如你所说,不幸的是,它并没有解决问题。奇怪的是.dygraph图例{display:none;}覆盖了.highlight{display:inline;},即使在使用之后!重要信息。问题已解决:)。显然,需要span
才能使其工作(参见timelyportfolio的答案:)。