Функция щелчка Highcharts для отображения нескольких значений - PullRequest
0 голосов
/ 08 ноября 2019

В блестящем приложении я использую следующий df и создаю график с Highcharts. >

 dput(all_NoTime3)
structure(list(datetime = c(1573637519000, 1573637484000, 1573637444000, 
1573637443000, 1573637443000, 1573637302000, 1573636844000, 1573636831000, 
1573636831000, 1573636831000, 1573636827000, 1573636673000, 1573636214000, 
1573636213000, 1573636213000, 1573636176000, 1573636175000, 1573636045000, 
1573635597000, 1573635597000, 1573635597000, 1573635518000, 1573635518000, 
1573635409000, 1573634980000, 1573634980000, 1573634980000, 1573634868000, 
1573634859000, 1573634771000, 1573634364000, 1573634364000, 1573634364000, 
1573634209000, 1573634194000, 1573634142000, 1573633748000, 1573633747000, 
1573633747000, 1573633548000, 1573633531000, 1573633531000, 1573633508000, 
1573633132000, 1573633131000, 1573633131000, 1573632896000, 1573632872000, 
1573632837000, 1573632515000, 1573632515000, 1573632514000, 1573632252000, 
1573632236000, 1573632164000, 1573631898000, 1573631898000, 1573631898000, 
1573631624000, 1573631580000, 1573631500000, 1573631282000, 1573631282000, 
1573631282000, 1573630988000, 1573630919000, 1573630828000, 1573630665000, 
1573630665000, 1573630665000, 1573630351000, 1573630266000, 1573630155000, 
1573630049000, 1573630049000, 1573630049000, 1573629722000, 1573629603000, 
1573629483000, 1573629433000, 1573629433000, 1573629432000, 1573629085000, 
1573628941000, 1573628820000, 1573628819000, 1573628819000, 1573628817000, 
1573628817000, 1573628427000, 1573628288000, 1573628203000, 1573628203000, 
1573628203000, 1573628127000, 1573628127000, 1573627770000, 1573627625000, 
1573627587000, 1573627587000, 1573627587000, 1573627434000, 1573627121000, 
1573627121000, 1573626974000, 1573626974000, 1573626973000, 1573626971000, 
1573626762000, 1573626444000, 1573626444000, 1573626357000, 1573626357000, 
1573626357000, 1573626319000, 1573626095000, 1573625777000, 1573625777000, 
1573625741000, 1573625741000, 1573625740000, 1573625667000, 1573625431000, 
1573625125000, 1573625125000, 1573625124000, 1573625101000, 1573625015000, 
1573624768000, 1573624508000, 1573624508000, 1573624508000, 1573624445000, 
1573624346000, 1573624104000, 1573623891000, 1573623891000, 1573623891000, 
1573623787000, 1573623693000, 1573623431000, 1573623276000, 1573623275000, 
1573623275000, 1573623130000, 1573623029000, 1573622764000, 1573622659000, 
1573622659000, 1573622659000, 1573622483000, 1573622376000, 1573622093000, 
1573622043000, 1573622043000, 1573622043000, 1573621826000, 1573621714000, 
1573621429000, 1573621429000, 1573621429000, 1573621427000, 1573621169000, 
1573621061000, 1573620823000, 1573620823000, 1573620823000, 1573620754000, 
1573620512000, 1573620409000, 1573620207000, 1573620206000, 1573620206000, 
1573620089000, 1573619865000, 1573619747000, 1573619591000, 1573619591000, 
1573619590000, 1573619416000, 1573619209000, 1573619094000, 1573618975000, 
1573618975000, 1573618975000, 1573618745000, 1573618552000, 1573618434000, 
1573618359000, 1573618359000, 1573618358000, 1573618083000, 1573617896000, 
1573617781000, 1573617755000, 1573617744000, 1573617743000), 
    customer = c("digea", "fraport", "vouli", "maximou", "mitilinaios", 
    "olympiaradio", "digea", "maximou", "mitilinaios", "vouli", 
    "fraport", "olympiaradio", "vouli", "maximou", "mitilinaios", 
    "digea", "fraport", "olympiaradio", "maximou", "mitilinaios", 
    "vouli", "digea", "fraport", "olympiaradio", "maximou", "mitilinaios", 
    "vouli", "digea", "fraport", "olympiaradio", "maximou", "mitilinaios", 
    "vouli", "fraport", "digea", "olympiaradio", "vouli", "maximou", 
    "mitilinaios", "fraport", "digea", "digea", "olympiaradio", 
    "vouli", "maximou", "mitilinaios", "fraport", "olympiaradio", 
    "digea", "mitilinaios", "vouli", "maximou", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "digea", "mitilinaios", "vouli", "maximou", "olympiaradio", 
    "fraport", "vouli", "maximou", "mitilinaios", "digea", "digea", 
    "olympiaradio", "fraport", "maximou", "mitilinaios", "vouli", 
    "digea", "digea", "olympiaradio", "fraport", "maximou", "mitilinaios", 
    "vouli", "digea", "olympiaradio", "olympiaradio", "mitilinaios", 
    "vouli", "maximou", "fraport", "digea", "olympiaradio", "olympiaradio", 
    "maximou", "mitilinaios", "vouli", "fraport", "digea", "olympiaradio", 
    "olympiaradio", "mitilinaios", "vouli", "maximou", "fraport", 
    "digea", "mitilinaios", "vouli", "maximou", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "digea", "vouli", "maximou", "mitilinaios", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "digea", "maximou", "mitilinaios", "vouli", "olympiaradio", 
    "fraport", "maximou", "mitilinaios", "vouli", "digea", "olympiaradio", 
    "fraport", "maximou", "mitilinaios", "vouli", "digea", "olympiaradio", 
    "fraport", "maximou", "mitilinaios", "vouli", "digea", "olympiaradio", 
    "fraport", "mitilinaios", "vouli", "maximou", "digea", "olympiaradio", 
    "fraport", "maximou", "mitilinaios", "vouli", "digea", "olympiaradio", 
    "fraport", "mitilinaios", "vouli", "maximou", "digea", "olympiaradio", 
    "fraport", "vouli", "mitilinaios", "maximou"), ping.x = c(1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
    1, 1, 1, 1, 1, 1), n = c(105L, 45L, 7L, 4L, 5L, 23L, 105L, 
    4L, 5L, 7L, 45L, 23L, 7L, 4L, 5L, 105L, 45L, 23L, 4L, 5L, 
    7L, 105L, 44L, 23L, 4L, 5L, 7L, 105L, 45L, 23L, 4L, 5L, 7L, 
    45L, 105L, 23L, 7L, 4L, 5L, 45L, 104L, 104L, 23L, 7L, 4L, 
    5L, 45L, 23L, 105L, 5L, 7L, 4L, 23L, 45L, 105L, 4L, 5L, 7L, 
    23L, 45L, 105L, 4L, 5L, 7L, 23L, 45L, 105L, 4L, 5L, 7L, 23L, 
    45L, 105L, 4L, 5L, 7L, 23L, 45L, 105L, 5L, 7L, 4L, 22L, 45L, 
    7L, 4L, 5L, 104L, 104L, 22L, 45L, 4L, 5L, 7L, 104L, 104L, 
    22L, 45L, 4L, 5L, 7L, 105L, 21L, 21L, 5L, 7L, 4L, 45L, 104L, 
    21L, 21L, 4L, 5L, 7L, 45L, 105L, 21L, 21L, 5L, 7L, 4L, 45L, 
    105L, 5L, 7L, 4L, 22L, 45L, 105L, 4L, 5L, 7L, 22L, 45L, 105L, 
    4L, 5L, 7L, 22L, 45L, 105L, 7L, 4L, 5L, 22L, 45L, 105L, 4L, 
    5L, 7L, 22L, 45L, 105L, 4L, 5L, 7L, 22L, 45L, 4L, 5L, 7L, 
    105L, 22L, 45L, 4L, 5L, 7L, 105L, 22L, 45L, 4L, 5L, 7L, 105L, 
    22L, 45L, 5L, 7L, 4L, 105L, 22L, 45L, 4L, 5L, 7L, 105L, 22L, 
    45L, 5L, 7L, 4L, 105L, 22L, 45L, 7L, 5L, 4L), percent = c(99.1, 
    97.8, 100, 100, 100, 100, 99.1, 100, 100, 100, 97.8, 100, 
    100, 100, 100, 99.1, 97.8, 100, 100, 100, 100, 99.1, 97.8, 
    100, 100, 100, 100, 99.1, 97.8, 100, 100, 100, 100, 97.8, 
    99.1, 100, 100, 100, 100, 97.8, 98.1, 98.1, 100, 100, 100, 
    100, 97.8, 100, 99.1, 100, 100, 100, 100, 97.8, 99.1, 100, 
    100, 100, 100, 97.8, 99.1, 100, 100, 100, 100, 97.8, 99.1, 
    100, 100, 100, 100, 97.8, 99.1, 100, 100, 100, 100, 97.8, 
    99.1, 100, 100, 100, 95.7, 97.8, 100, 100, 100, 98.1, 98.1, 
    95.7, 97.8, 100, 100, 100, 98.1, 98.1, 95.7, 97.8, 100, 100, 
    100, 99.1, 91.3, 91.3, 100, 100, 100, 97.8, 99, 91.3, 91.3, 
    100, 100, 100, 97.8, 99.1, 91.3, 91.3, 100, 100, 100, 97.8, 
    99.1, 100, 100, 100, 95.7, 97.8, 99.1, 100, 100, 100, 95.7, 
    97.8, 99.1, 100, 100, 100, 95.7, 97.8, 99.1, 100, 100, 100, 
    95.7, 97.8, 99.1, 100, 100, 100, 95.7, 97.8, 99.1, 100, 100, 
    100, 95.7, 97.8, 100, 100, 100, 99.1, 95.7, 97.8, 100, 100, 
    100, 99.1, 95.7, 97.8, 100, 100, 100, 99.1, 95.7, 97.8, 100, 
    100, 100, 99.1, 95.7, 97.8, 100, 100, 100, 99.1, 95.7, 97.8, 
    100, 100, 100, 99.1, 95.7, 97.8, 100, 100, 100), element = c("n3328-corf90a-digea-paleokastritsa", 
    "n3328-xari9kb-ryanair-airport", NA, NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, "n3328-xari9kb-ryanair-airport", NA, NA, NA, 
    NA, "n3328-corf90a-digea-paleokastritsa", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, NA, "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, NA, "n3328-xari9kb-ryanair-airport", "n3328-reth9ka-digea-livadia", 
    "n3328-corf90a-digea-paleokastritsa", NA, NA, NA, NA, "n3328-xari9kb-ryanair-airport", 
    NA, "n3328-corf90a-digea-paleokastritsa", NA, NA, NA, NA, 
    "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, NA, "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, NA, "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, NA, "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, NA, "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, "n3328-lar2-digea-skopelos", "n3328-corf90a-digea-paleokastritsa", 
    "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, "n3328-lar2-digea-skopelos", "n3328-corf90a-digea-paleokastritsa", 
    "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", "n3328-rodo9ka-olympiaradio-reni", 
    "n5328-corf90a-olympiaradio-pantokratoras", NA, NA, NA, "n3328-xari9kb-ryanair-airport", 
    "n3328-corf90a-digea-paleokastritsa", "n3328-rodo9ka-olympiaradio-reni", 
    "n5328-corf90a-olympiaradio-pantokratoras", NA, NA, NA, "n3328-xari9kb-ryanair-airport", 
    "n3328-corf90a-digea-paleokastritsa", "n3328-rodo9ka-olympiaradio-reni", 
    "n5328-corf90a-olympiaradio-pantokratoras", NA, NA, NA, "n3328-xari9kb-ryanair-airport", 
    "n3328-corf90a-digea-paleokastritsa", NA, NA, NA, "n5328-corf90a-olympiaradio-pantokratoras", 
    "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    "n3328-corf90a-digea-paleokastritsa", NA, NA, NA, "n5328-corf90a-olympiaradio-pantokratoras", 
    "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    "n3328-corf90a-digea-paleokastritsa", NA, NA, NA, "n5328-corf90a-olympiaradio-pantokratoras", 
    "n3328-xari9kb-ryanair-airport", "n3328-corf90a-digea-paleokastritsa", 
    NA, NA, NA, "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", "n5328-corf90a-olympiaradio-pantokratoras", 
    "n3328-xari9kb-ryanair-airport", NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", 
    "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", "n5328-corf90a-olympiaradio-pantokratoras", 
    "n3328-xari9kb-ryanair-airport", NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", 
    "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", "n5328-corf90a-olympiaradio-pantokratoras", 
    "n3328-xari9kb-ryanair-airport", NA, NA, NA, "n3328-corf90a-digea-paleokastritsa", 
    "n5328-corf90a-olympiaradio-pantokratoras", "n3328-xari9kb-ryanair-airport", 
    NA, NA, NA), ping.y = c(0, 0, NA, NA, NA, NA, 0, NA, NA, 
    NA, 0, NA, NA, NA, NA, 0, 0, NA, NA, NA, NA, 0, 0, NA, NA, 
    NA, NA, 0, 0, NA, NA, NA, NA, 0, 0, NA, NA, NA, NA, 0, 0, 
    0, NA, NA, NA, NA, 0, NA, 0, NA, NA, NA, NA, 0, 0, NA, NA, 
    NA, NA, 0, 0, NA, NA, NA, NA, 0, 0, NA, NA, NA, NA, 0, 0, 
    NA, NA, NA, NA, 0, 0, NA, NA, NA, 0, 0, NA, NA, NA, 0, 0, 
    0, 0, NA, NA, NA, 0, 0, 0, 0, NA, NA, NA, 0, 0, 0, NA, NA, 
    NA, 0, 0, 0, 0, NA, NA, NA, 0, 0, 0, 0, NA, NA, NA, 0, 0, 
    NA, NA, NA, 0, 0, 0, NA, NA, NA, 0, 0, 0, NA, NA, NA, 0, 
    0, 0, NA, NA, NA, 0, 0, 0, NA, NA, NA, 0, 0, 0, NA, NA, NA, 
    0, 0, NA, NA, NA, 0, 0, 0, NA, NA, NA, 0, 0, 0, NA, NA, NA, 
    0, 0, 0, NA, NA, NA, 0, 0, 0, NA, NA, NA, 0, 0, 0, NA, NA, 
    NA, 0, 0, 0, NA, NA, NA)), class = "data.frame", row.names = c(NA, 
-197L))

Я хочу, чтобы функция щелчка отображала более одного значения, связанного с hs.event.point.

На данный момент я обнаружил следующую функцию, которая отображает только ОДНО значение в качестве event.point.element. Я хочу, чтобы при необходимости отображалось более одного. Возможно ли это?

Например, я ожидал больше значений в выделенных точках, показанных ниже.

enter image description here

Весь блестящий код приложения / Highcharts:

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)
...