小编Tim*_*bim的帖子

如何使用knitr中的网格逐步构建分层绘图?

对于研讨会随附的在线教程,我想强调网格包的使用(特别是如何使用视口).为此,我想逐步构建一个绘图(即chunk by chunk).在每个步骤/块之间,我想包括一些普通文本,以便更详细地解释每个步骤.

我如何告诉knitr不单独评估一个块,而是开始评估上一个块结束的位置?基本上,而不是我想要添加到前一个块的结果的块的新评估.

在下面的代码中,当编织为html时,我在.html输出中得到2个图.第一个显示第一个块的结果(粉红色矩形和一些文本),第二个显示第二个块的结果(蓝色矩形).我想要实现的是两个图 - 第一个显示第一个块的结果(如上所示),第二个图显示第一个块的结果+第二个块的结果(粉红色矩形内的蓝色矩形) ).基本上,我想在R控制台中运行时重现两个代码块的行为.蓝色矩形应放在粉红色矩形中,不能单独绘制.

这是第一块

```{r grid first vp, tidy = FALSE}
library(grid)
grid.newpage()

## draw a rectangle around the root vp and provide some text
grid.rect()
grid.text("this is the root vp", x = 0.5, y = 1, just = c("centre", "top"))

vp <- viewport(x = 0.5, y = 0.5, 
               height = 0.5, width = 0.5,
               just = c("centre", "centre"))

pushViewport(vp)

grid.rect(gp = gpar(fill = "pink"))
grid.text("this is our first vp", x = 0.5, y = …
Run Code Online (Sandbox Code Playgroud)

r knitr

5
推荐指数
1
解决办法
1124
查看次数

在 R 中使用 Leaflet 时如何在 addCircleMarkers() 中指定半径单位

我正在尝试使用在闪亮的应用程序中使用 R 创建的传单地图来可视化从出发地到目的地的装运。

我想添加一个半径的圆形标记,该标记对应于来自名为main()的反应数据odistddist变量

下面是一个相关的快照和随附的代码:

图1

output$leaflet1 <- renderLeaflet({
  leaflet() %>%
    addCircleMarkers(data = main(), lng = main()$Olong, lat = main()$Olat, color = 'black', fillColor = coyGreen,
                     radius = main()$odist, opacity = .5) %>% 
    addCircleMarkers(data = main(), lng = main()$Dlong, lat = main()$Dlat, color = 'black', fillColor = coyGreen, 
                     radius = main()$ddist, opacity = .3)
})
Run Code Online (Sandbox Code Playgroud)

对于上面的例子,参数radius = main()$odist等价于radius = 50。然而,这 50 个单位似乎是任意的(圆比大的小,radius = main()$ddist = 125但随着我放大和缩小,两个圆都会放大和缩小)。我希望能够将我的圆形标记的半径设置为以英里为单位的固定半径,但是我一直无法弄清楚如何这样做。任何帮助是极大的赞赏!

r leaflet

5
推荐指数
1
解决办法
7687
查看次数

标签 统计

r ×2

knitr ×1

leaflet ×1