Giter Site home page Giter Site logo

Plot click interactivity about apexcharter HOT 2 CLOSED

dreamrs avatar dreamrs commented on June 15, 2024
Plot click interactivity

from apexcharter.

Comments (2)

pvictor avatar pvictor commented on June 15, 2024

Hello Alik,

I think its easier if you use apex() instead of apexcharter (moreover there is a bug, normally it should not display NULL but the year...)

With apex() you have to format your data lightly differently: you need rows not columns, I used tidyr::pivot_longer() to make the change, here's your example modified:

library(apexcharter)
library(dplyr)
library(tidyr)
library(shiny)

ui <- fluidPage(
  apexchartOutput("main_chart"),
  verbatimTextOutput("click1"),
  apexchartOutput("secondary_chart")
)

server <- function(input, output, session) {
  df <- data.frame(
    time = c(2020, 2025, 2030, 2035, 2040),
    x1 = c(10.1, 20.3, 30.4, 40.7, 50.8),
    y1 = c(3.4, 6.7, 10.1, 13.6, 16.9),
    z1 = c(6.8, 13.6, 20.3, 27.1, 33.9),
    
    x2 = c(20.1, 30.3, 40.4, 50.7, 60.8),
    y2 = c(6.4, 12.7, 20.1, 26.6, 32.9),
    z2 = c(12.8, 26.6, 40.3, 52.1, 66.9)
  )
  
  output$main_chart <- renderApexchart({
    # summarise data by x, y, z
    df %>% 
      mutate(
        x = x1 + x2,
        y = y1 + y2,
        z = z1 + z2
      ) %>% 
      select(time, x:z) %>% 
      pivot_longer(cols = x:z) %>% # transform column in row
      apex(aes(time, value, group = name), auto_update = FALSE) %>%
      ax_grid(show = FALSE) %>%
      ax_title(text = "Output of plot 1") %>%
      set_input_click("click")
  })
  
  output$secondary_chart <- renderApexchart({
    
    req(input$click)
    
    df %>%
      select(time, contains(names(input$click))) %>% 
      pivot_longer(cols = -time) %>% # transform column in row
      apex(aes(time, value, group = name), auto_update = FALSE) %>%
      ax_grid(show = FALSE) %>%
      ax_title(text = "Output of plot 2")
  })
  
  
  output$click1 <- renderPrint({
    input$click
  })
}

shinyApp(ui = ui, server = server)

Victor

from apexcharter.

Alik-V avatar Alik-V commented on June 15, 2024

Thanks a lot!

from apexcharter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.