Пользовательская кнопка в блестящей - PullRequest
0 голосов
/ 11 июля 2019

Я хочу создать кнопку, которая меняет свои свойства при каждом нажатии.В частности, я хочу, чтобы кнопка начиналась с математического символа «>», затем после нажатия она меняется на «<», а при повторном нажатии - «=».Можно ли построить его в Shiny? </p>

Я построил свой интерфейс следующим образом:

library(shiny)
library(ggplot2)
library(plotly)
library(DT)
library(shinyWidgets)
library(semantic.dashboard)

ui <- dashboardPage(
  dashboardHeader(color = "blue",title = "Dashboard Demo", inverted = TRUE),
  dashboardSidebar(visible= FALSE,
                   size = 'very thin', color = "teal",
                   sidebarMenu(
                     menuItem(tabName = "main", "Main", icon = icon("car"))    )
  ),
  dashboardBody(
    tabItems(
      selected = 1,
      tabItem(
        tabName = "main",
        fluidRow(
          box(width = 7,
              title = "Produto A",
              color = "green", ribbon = TRUE, title_side = "top right",
              column(width = 7,
                     plotOutput("boxplot1")
              )
          ),
          box(width = 7,
              title = "Produto B",
              color = "red", ribbon = TRUE, title_side = "top right",
              column(width = 7,
                     plotOutput("dotplot1")
              )
          )

      )) 


  ), theme = "cerulean"

))

server <- shinyServer(function(input, output, session) {

  colscale <- c(semantic_palette[["red"]], semantic_palette[["green"]], semantic_palette[["blue"]])

  number <- reactiveVal(1)



  output$boxplot1 <- renderPlot({
    plot(eval(parse(text=as.character(random[number(),1]))), axes = FALSE)
  })

  output$dotplot1 <- renderPlot({
    plot(eval(parse(text=as.character(random[number(),2]))), axes = FALSE)

  })

})

shinyApp(ui, server)

Я хочу поместить эту кнопку между этими двумя полями таким образом, чтобы пользовательМожно сравнить между фотографиями.

1 Ответ

1 голос
/ 11 июля 2019

Я не глубоко изучил ваш код, но попытался понять от вас вопрос

Я хочу кнопку, начинающуюся с математического символа «>», затем после вас нажмите, он изменится на «<», и если вы нажмете снова, он перейдет к «=». Это можно ли его построить в Shiny? </p>

Следующий код может это сделать ..

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(title = "Dashboard Demo"),
  dashboardSidebar(
        sidebarMenu(
                     menuItem(tabName = "main", "Main", icon = icon("car"))
                     )
  ),
  dashboardBody(
    tabItems(
      tabItem(
        tabName = "main",
        fluidRow(
          box(width = 7,
              title = "Produto A",
              color = "green", ribbon = TRUE, title_side = "top right",
              uiOutput("action_button")
          )
        )) 
    )
  ))

server <- shinyServer(function(input, output, session) {

  output$action_button<-renderUI({
    actionButton("button",">")
  })

  observeEvent(input$button,{
   if(input$button==1)
   {
     updateActionButton(session,"button","<")
   }
    else if(input$button>1)
    {
      updateActionButton(session,"button","=")
    }
  })
})

shinyApp(ui, server)

Пожалуйста, дайте мне знать ...

...