2016-08-17 2 views
0

Я просто изучаю R Shiny и играю с различными примерами в галерее. Для «Image Output» Например:Выходной заголовок с изображением

http://shiny.rstudio.com/gallery/image-output.html

мне было интересно, как я мог бы включать заголовок изображения, когда я выбираю либо звездочку или кнопку смайлик радио. Например, после выбора «смайлик» мне хотелось бы, чтобы заголовок «Smiley» отображался под изображением. Спасибо за помощь. Ниже приведен код, который также включен в ссылку выше. (Некоторые из них были намеренно удалены для ясности). Спасибо

library(png) # For writePNG function 

shinyServer(function(input, output, session) { 

# A temp file to save the output. 
# This file will be automatically removed later by 
# renderImage, because of the deleteFile=TRUE argument. 
outfile <- tempfile(fileext = ".png") 

# Generate the image and write it to file 
x <- matrix(rep((0:(width-1))/(width-1), height), height, 
      byrow = TRUE) 
y <- matrix(rep((0:(height-1))/(height-1), width), height) 
pic <- gauss2d(x, y, input$r) 
writePNG(pic, target = outfile) 

# Return a list containing information about the image 
list(src = outfile, 
    contentType = "image/png", 
    width = width, 
    height = height, 
    alt = "This is alternate text") 

}, deleteFile = TRUE) 


# image2 sends pre-rendered images 
output$image2 <- renderImage({ 
if (is.null(input$picture)) 
    return(NULL) 

if (input$picture == "face") { 
    return(list(
    src = "images/face.png", 
    contentType = "image/png", 
    alt = "Face" 
)) 
} else if (input$picture == "chainring") { 
    return(list(
    src = "images/chainring.jpg", 
    filetype = "image/jpeg", 
    alt = "This is a chainring" 
)) 
} 

}, deleteFile = FALSE) 
}) 







shinyUI(fluidPage(
titlePanel("Client data and query string example"), 

fluidRow(
column(4, wellPanel(
    sliderInput("r", "Radius :", min = 0.05, max = 1, 
       value = 0.2, step = 0.05), 
    radioButtons("picture", "Picture:", 
       c("chainring", "face")) 
)), 
column(4, 
    imageOutput("image1", height = 300), 
    imageOutput("image2") 
) 
) 

ответ

0

Помогает ли это?

ui.R

library(shiny) 
    shinyUI(fluidPage(
     titlePanel("Image title"), 
     sidebarLayout(
     sidebarPanel(
       sliderInput("obs", "Number of observations:", 
          min = 0, max = 1000, value = 500) 
     ), 
     mainPanel(
       imageOutput("myImage"), 
       uiOutput("text") 

     ) 
    ) 
    )) 

server.R

library(shiny) 

    shinyServer(function(input, output) { 

      output$myImage <- renderImage({ 
        outfile <- tempfile(fileext='.png') 

        png(outfile, width=400, height=300) 
        hist(rnorm(input$obs), main = "") 
        dev.off() 

        list(src = outfile, 
         contentType = 'image/png', 
         width = 400, 
         height = 300, 
         alt = "This is alternate text") 
      }, deleteFile = TRUE) 
      histogramTitle <- reactive({ 
        paste("<h5>", input$obs, " observation used to create the histogram</h5>", sep = "") 
      }) 
      output$text <- renderUI({ 
        HTML(as.character(histogramTitle())) 
      }) 
    }) 
Смежные вопросы