Highcharts单击函数可显示多个值

Highcharts单击函数可显示多个值,highcharts,shiny,Highcharts,Shiny,在一个闪亮的应用程序中,我使用以下df并创建一个带有Highcharts的图表。 > 我需要一个单击功能来显示多个与hs.event.point相关的值 到目前为止,我发现的是以下函数,它只显示一个值event.point.element。我希望在必要时显示多个。这可能吗 例如,我希望高亮显示的点中有更多的值,如下所示 整个闪亮的应用程序/海图代码: library(shiny) library(shinydashboard) library(shinydashboardPlus) libra

在一个闪亮的应用程序中,我使用以下df并创建一个带有Highcharts的图表。 >

我需要一个单击功能来显示多个与hs.event.point相关的值

到目前为止,我发现的是以下函数,它只显示一个值event.point.element。我希望在必要时显示多个。这可能吗

例如,我希望高亮显示的点中有更多的值,如下所示

整个闪亮的应用程序/海图代码:

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyWidgets)
library(DT)
library(RMySQL)
library(dbConnect)
library(dplyr)
library(plotly)
library(shinyTime)
library(shinyalert)
library(tidyr)
library(shinyjs)
library(shinycssloaders)
library(shinytoastr)
library (highcharter)
library(pool)


ui <- fluidPage(

    shinyjs::useShinyjs(),

         tags$head(
            tags$link(rel = "stylesheet", type = "text/css", href = "B2B_notifier.css"),
          HTML("\n<script src='https://www.highcharts.com/media/com_demo/js/highslide-full.min.js'></script>
             \n<script src='https://www.highcharts.com/media/com_demo/js/highslide.config.js' charset='utf-8'></script>
            \n<link rel='stylesheet' type='text/css' href='https://www.highcharts.com/media/com_demo/css/highslide.css'/>")

       ),

    # Main panel for displaying outputs ----
    mainPanel(


    highchartOutput("Plot", height = 600)

    )
  )
)

server <- function(input, output) {

# Click Function JS 
  canvasClickFunction3 <- JS("function (e) {

                        hs.htmlExpand(null, {
                            pageOrigin: {
                                x: e.pageX || e.clientX,
                                y: e.pageY || e.clientY
                            },

                            headingText: 'Nte Information:',
                            maincontentText: '<i>'+ 'Date:' + ' ' + '</i><b>' + Highcharts.dateFormat('%A, %b %e, %Y, %H:%M:%S', this.x) + '</b>'
                              + '<br/><i> ' +
                               'Nte:' + ' ' + '</i><b>' + event.point.element + '</b>' 
                              + '<br/> <i>',
                            width: 330,

                        });
                    }") 


########### Plot ##########

   output$Plot <- renderHighchart ({

        highchart() %>%
             hc_chart(type = "container",
                      zoomType= "x"
             ) %>%
             #axis
             hc_xAxis(type='datetime',
                      # categories=c(min2$datetime),
                      labels = list(rotation = 90,
                                    format = '{value:%e-%b %H:%M}'),
                      showLastLabel = TRUE
             ) %>% 
             hc_yAxis(opposite = FALSE, 
                      title = list(text = "Call Success"),
                      labels = list(format = "{value}%", style=list(fontSize='13px')), max = 100) %>% 
             hc_add_series(all_NoTime3, "spline", hcaes(x=datetime, y=percent, group=customer)
             )%>%
             hc_tooltip(valueDecimals = 1,
                        borderWidth=2,
                        xDateFormat= '<b> %y/%m/%d %H:%M:%S <b/>',
                        crosshairs = TRUE,
                        backgroundColor=' #eaecee ',
                        pointFormat = "Customer: <b> {series.name} <br> Success: <b> {point.y} %",
                        style=list(fontSize='14px')
             )%>%
             hc_plotOptions(spline =list(lineWidth=2,
                                         allowPointSelect= TRUE,
                                         turboThreshold=100,
                                         cursor= 'pointer',
                                         states=list(hover=list(lineWidth=4)),
                                         marker=list(enabled = F,
                                                     radius=1, 
                                                     symbol="circle")),
                              series = list(stacking = FALSE,
                                        point =list(
                                        events = list(click =  canvasClickFunction3)))
             ) %>%
             hc_credits(enabled = TRUE,
                        text = "CX & SE Center",
                        style = list(fontSize = "10px")
             ) %>%
             hc_exporting(enabled = TRUE)
   }) 

}

shinyApp(ui, server)
库(闪亮)
图书馆(shinydashboard)
图书馆(shinydashboardPlus)
图书馆(shinyWidgets)
图书馆(DT)
图书馆(RMySQL)
图书馆(数据库连接)
图书馆(dplyr)
图书馆(绘本)
图书馆(shinyTime)
图书馆(shinyalert)
图书馆(tidyr)
图书馆(shinyjs)
图书馆(shinycssloaders)
图书馆(新科大学)
图书馆(高级特许)
图书馆(泳池)
ui%
#轴心
hc_xAxis(type='datetime',
#类别=c(最小2$datetime),
标签=列表(旋转=90,
格式=“{值:%e-%b%H:%M}”),
showLastLabel=TRUE
) %>% 
hc_yAxis(相反=假,
title=列表(text=“呼叫成功”),
labels=list(format=“{value}%”,style=list(fontSize='13px')),max=100)%
hc添加系列(所有非IME3,“样条曲线”,HCAE(x=日期时间,y=百分比,组=客户)
)%>%
hc_工具提示(数值小数=1,
边框宽度=2,
xDateFormat='%y/%m/%d%H:%m:%S',
十字准线=正确,
背景色=“#eaecee”,
pointFormat=“客户:{series.name}
成功:{point.y}%”, 样式=列表(fontSize='14px') )%>% hc\U绘图选项(样条曲线=列表(线宽=2, allowPointSelect=TRUE, 涡轮阈值=100, 游标='指针', 状态=列表(悬停=列表(线宽=4)), 标记=列表(已启用=F, 半径=1, symbol=“圆圈”), 系列=列表(堆叠=假, 点=列表( 事件=列表(单击=画布单击功能3))) ) %>% hc_积分(启用=真, text=“CX&SE中心”, 样式=列表(fontSize=“10px”) ) %>% hc_导出(启用=真) }) } shinyApp(用户界面、服务器)
Hi。你能提供你正在使用的所有软件包的列表吗?这样我就可以在我的RStudio环境中运行你的代码了?那么,你能具体说明你的问题吗?是否要在工具提示中显示多个点的信息?您好,我想单击highchart点并显示多个值。e、 g在上图中,受影响的NTE不止一个。但是,当我使用event.point函数时,每次只显示一个值。使用的图书馆有:图书馆(shiny)图书馆(shinydashboard)图书馆(shinydashboardPlus)图书馆(shinyWidgets)图书馆(DT)图书馆(RMySQL)图书馆(dbConnect)图书馆(dplyr)图书馆(plotly)图书馆(shinyTime)图书馆(shinyalert)图书馆(tidyr)图书馆(shinyjs)图书馆(shinycssloaders)图书馆(highcharter)图书馆(pool)我仍然无法运行您的代码。您能否提供适当的数据或简化上述内容?是否不仅可以简化数据,还可以简化整个代码?此外,我还收到一个错误:“selectedData_Val()中的错误:找不到函数“selectedData_Val”。我更改/提供了原始问题中的数据和整个应用程序代码。你能再测试一下吗?有人能帮忙吗?也许是另一种方式??
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyWidgets)
library(DT)
library(RMySQL)
library(dbConnect)
library(dplyr)
library(plotly)
library(shinyTime)
library(shinyalert)
library(tidyr)
library(shinyjs)
library(shinycssloaders)
library(shinytoastr)
library (highcharter)
library(pool)


ui <- fluidPage(

    shinyjs::useShinyjs(),

         tags$head(
            tags$link(rel = "stylesheet", type = "text/css", href = "B2B_notifier.css"),
          HTML("\n<script src='https://www.highcharts.com/media/com_demo/js/highslide-full.min.js'></script>
             \n<script src='https://www.highcharts.com/media/com_demo/js/highslide.config.js' charset='utf-8'></script>
            \n<link rel='stylesheet' type='text/css' href='https://www.highcharts.com/media/com_demo/css/highslide.css'/>")

       ),

    # Main panel for displaying outputs ----
    mainPanel(


    highchartOutput("Plot", height = 600)

    )
  )
)

server <- function(input, output) {

# Click Function JS 
  canvasClickFunction3 <- JS("function (e) {

                        hs.htmlExpand(null, {
                            pageOrigin: {
                                x: e.pageX || e.clientX,
                                y: e.pageY || e.clientY
                            },

                            headingText: 'Nte Information:',
                            maincontentText: '<i>'+ 'Date:' + ' ' + '</i><b>' + Highcharts.dateFormat('%A, %b %e, %Y, %H:%M:%S', this.x) + '</b>'
                              + '<br/><i> ' +
                               'Nte:' + ' ' + '</i><b>' + event.point.element + '</b>' 
                              + '<br/> <i>',
                            width: 330,

                        });
                    }") 


########### Plot ##########

   output$Plot <- renderHighchart ({

        highchart() %>%
             hc_chart(type = "container",
                      zoomType= "x"
             ) %>%
             #axis
             hc_xAxis(type='datetime',
                      # categories=c(min2$datetime),
                      labels = list(rotation = 90,
                                    format = '{value:%e-%b %H:%M}'),
                      showLastLabel = TRUE
             ) %>% 
             hc_yAxis(opposite = FALSE, 
                      title = list(text = "Call Success"),
                      labels = list(format = "{value}%", style=list(fontSize='13px')), max = 100) %>% 
             hc_add_series(all_NoTime3, "spline", hcaes(x=datetime, y=percent, group=customer)
             )%>%
             hc_tooltip(valueDecimals = 1,
                        borderWidth=2,
                        xDateFormat= '<b> %y/%m/%d %H:%M:%S <b/>',
                        crosshairs = TRUE,
                        backgroundColor=' #eaecee ',
                        pointFormat = "Customer: <b> {series.name} <br> Success: <b> {point.y} %",
                        style=list(fontSize='14px')
             )%>%
             hc_plotOptions(spline =list(lineWidth=2,
                                         allowPointSelect= TRUE,
                                         turboThreshold=100,
                                         cursor= 'pointer',
                                         states=list(hover=list(lineWidth=4)),
                                         marker=list(enabled = F,
                                                     radius=1, 
                                                     symbol="circle")),
                              series = list(stacking = FALSE,
                                        point =list(
                                        events = list(click =  canvasClickFunction3)))
             ) %>%
             hc_credits(enabled = TRUE,
                        text = "CX & SE Center",
                        style = list(fontSize = "10px")
             ) %>%
             hc_exporting(enabled = TRUE)
   }) 

}

shinyApp(ui, server)