我正在使用Shiny和RMarkdown来生成一个交互式文档,如here所述。

使用以下代码,我设法绘制了一个交互式 map

```{r, echo=FALSE, warning=FALSE, message=FALSE}

g2g14 <- readOGR("input//geodata", "g2g14") # no projection needs to be specified
old_geodata <- g2g14@data

inputPanel(
  selectInput("map.party", label = "Partei", choices = unique(long_data$Partei), selected = "FDP"),
  selectInput("map.year", label = "Wahljahr", choices = unique(format.Date(long_data$Jahr, "%Y")), selected = "1971")
)

renderPlot({
  partydata <- long_data %>%
    filter(Partei == input$map.party & Jahr == as.Date(input$map.year, "%Y"))
  g2g14@data <- old_geodata
  g2g14@data <- merge(g2g14@data, partydata, by.x =  "GMDNR",by.y ="BFSNr")

  cols <- brewer.pal(5, "Purples")
  brks <- seq(0,100,20)
  colsForMap <- cols[findInterval(g2g14@data$Staerke, vec = brks[1:5])]

  plot(g2g14, col = colsForMap, border = "white")
  legend("topleft", legend = levels(cut(g2g14@data$Staerke, brks)), fill = cols, border = "white", title = "Parteistärke in %")

})

问题:从控制台运行代码时, map 可以很好地缩放,但是在交互式文档中,图太小了:

这可能是由于绘图区域的高度有限。
我已经尝试在块选项中设置一个非常大的fig.height = 20,但是没有结果。
该怎么办?

最佳答案

您可以只在width中添加heightrenderPlot选项。键入?renderPlot以获取更多信息。

就你而言

renderPlot({
  partydata <- long_data %>%
    filter(Partei == input$map.party & Jahr == as.Date(input$map.year, "%Y"))
  g2g14@data <- old_geodata
  g2g14@data <- merge(g2g14@data, partydata, by.x =  "GMDNR",by.y ="BFSNr")

  cols <- brewer.pal(5, "Purples")
  brks <- seq(0,100,20)
  colsForMap <- cols[findInterval(g2g14@data$Staerke, vec = brks[1:5])]

  plot(g2g14, col = colsForMap, border = "white")
  legend("topleft", legend = levels(cut(g2g14@data$Staerke, brks)), fill = cols, border = "white", title = "Parteistärke in %")
}, width = 1200, height = 900)  ## <--- add outside the curly braces

关于r - 如何在交互式RMarkdown中控制绘图高度/大小(使用Shiny),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29693102/

10-12 17:46