如何将图像置于闪亮的应用程序中心?

时间:2016-01-07 18:59:59

标签: r image shiny

我在玩这个应用程序:

http://shiny.rstudio.com/gallery/plot-plus-three-columns.html

我在顶部行插入picture,将其插入“标题”

下方
list(img(src="NFL_Header.jpg", width = 400, align = "center")),

但这是合理的,align似乎没有做任何事情。如何为图像指定中心对齐?

2 个答案:

答案 0 :(得分:12)

来自Yihui他自己:

  

<img />的align属性不是您需要的。这是另一回事(http://www.w3schools.com/tags/att_img_align.asp)。您可以使用style="display: block; margin-left: auto; margin-right: auto;"将图像居中。或div(img(...), style="text-align: center;")

答案 1 :(得分:3)

使用HTML,您可以将整个img标记放在center标记中:

HTML('<center><img src="NFL_Header.jpg"></center>')

enter image description here

如果链接断开:

<强> ui.R

    library(shiny)
    library(ggplot2)

    dataset <- diamonds

    shinyUI(fluidPage(

      title = "Diamonds Explorer",

      HTML('<center><img src="NFL_Header.jpg" width="400"></center>'),

      plotOutput('plot'),

      hr(),

      fluidRow(
        column(3,
               h4("Diamonds Explorer"),
               sliderInput('sampleSize', 'Sample Size', 
                           min=1, max=nrow(dataset),
                           value=min(1000, nrow(dataset)), 
                           step=500, round=0),
               br(),
               checkboxInput('jitter', 'Jitter'),
               checkboxInput('smooth', 'Smooth')
        ),
        column(4, offset = 1,
               selectInput('x', 'X', names(dataset)),
               selectInput('y', 'Y', names(dataset), names(dataset)[[2]]),
               selectInput('color', 'Color', c('None', names(dataset)))
        ),
        column(4,
               selectInput('facet_row', 'Facet Row',
                           c(None='.', names(diamonds[sapply(diamonds, is.factor)]))),
               selectInput('facet_col', 'Facet Column',
                           c(None='.', names(diamonds[sapply(diamonds, is.factor)])))
        )
      )
    ))

<强> server.R

library(shiny)
library(ggplot2)

shinyServer(function(input, output) {

  dataset <- reactive({
    diamonds[sample(nrow(diamonds), input$sampleSize),]
  })

  output$plot <- renderPlot({

    p <- ggplot(dataset(), aes_string(x=input$x, y=input$y)) + geom_point()

    if (input$color != 'None')
      p <- p + aes_string(color=input$color)

    facets <- paste(input$facet_row, '~', input$facet_col)
    if (facets != '. ~ .')
      p <- p + facet_grid(facets)

    if (input$jitter)
      p <- p + geom_jitter()
    if (input$smooth)
      p <- p + geom_smooth()

    print(p)

  })

})