В блестящем приложении я использую следующий 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](https://i.stack.imgur.com/8TMO3.png)
Весь блестящий код приложения / 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)