R(Shiny)grid.circle和viewport仅输出文本

时间:2016-11-23 07:29:23

标签: r shiny

我想在 ERROR tool.BaseSqoopTool: Error parsing arguments for import: ERROR tool.BaseSqoopTool: Unrecognized argument: --schema ERROR tool.BaseSqoopTool: Unrecognized argument: analyst 上绘制一个圆圈,但我得到的唯一输出是文字。我的最终目标是在情节上画一个圆圈。这是我的代码:

viewport

但我得到的唯一输出是:

library(reshape)
library(grid)

ui <- fluidPage(
  titlePanel("The Bomb Problem"),
  fluidRow(
   column(2, numericInput("numberOfPoints", "Number Of Points:", 0)),
   column(2, numericInput("radius", "Radius:", 0.5, min = 0, max = 1)),
   column(2, actionButton("btnRun", "Run"))

  ),
  mainPanel(
    vp <- viewport(x=0.5,y=0.5,width=0.9, height=0.9),
    pushViewport(vp),
    plotOutput(outputId = "points", width = "100%"),
    grid.circle(x=0.6, y=0.4, r=0.3, draw = TRUE)
  )
)
server <- function(input, output) {
  observeEvent(input$btnRun, {
    x<-sample(0:input$numberOfPoints, input$numberOfPoints, rep=TRUE)
    y<-sample(0:input$numberOfPoints, input$numberOfPoints, rep=TRUE)
    output$points <- renderPlot(plot(x, y), height = 800, width = 800)
    df <- melt(data.frame(x,y))
  })
}
shinyApp(ui, server)

换句话说, 0.5npc 0.5npc 0.9npc 0.9npc centre FALSE 0 0 0 0.5 GRID.VP.13 0.6npc 0.4npc 0.3npc GRID.circle.10 grid.circle没有绘制任何对象,只是输出它们的属性。

1 个答案:

答案 0 :(得分:1)

我终于明白了;通过在observerEvent:

中的renderPlot方法中绘制圆和绘图
require(plotrix)
require(grid)
require(reshape)

ui <- fluidPage(
  titlePanel("The Bomb Problem"),
  fluidRow(
   column(2, numericInput("numberOfPoints", "Number Of Points:", 0)),
   column(2, numericInput("radius", "Radius:", 0.5, min = 0, max = 1)),
   column(2, actionButton("btnRun", "Run"))

  ),
  mainPanel(
    plotOutput(outputId = "points", width = "100%")
  )
)
server <- function(input, output) {
  observeEvent(input$btnRun, {
    x<-sample(0:input$numberOfPoints, input$numberOfPoints, rep=TRUE)
    y<-sample(0:input$numberOfPoints, input$numberOfPoints, rep=TRUE)
    output$points <- renderPlot({
      plot(x, y)
      draw.circle(0.5, 0.5, (input$numberOfPoints / 2) * input$radius, nv = 1000, border = NULL, col = NA, lty = 1, lwd = 0.5)
    }, height = 800, width = 800)
    df <- melt(data.frame(x,y))

  })
}
shinyApp(ui, server)