#html #r #r-leaflet #xaringan
#HTML #r #r-листовка #xaringan
Вопрос:
Я пытаюсь включить карту листовки в презентацию xaringan. В Интернете есть несколько примеров этого, в том числе в этой презентации.
Когда мой коллега тестирует приведенный ниже минимальный пример, они, как и ожидалось, получают интерактивную карту на слайде 2. Но когда я запускаю это, я не вижу карту, а просто вижу окно слайдера с HTML-кодом.
Это работает на машине моего коллеги:
---
title: "Testing leaflet"
output:
xaringan::moon_reader:
lib_dir: libs
nature:
highlightStyle: github
highlightLines: true
countIncrementalSlides: false
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(message = FALSE, warning = FALSE)
```
```{r out.width='100%', fig.height=6}
library(leaflet)
library(dplyr)
leaflet() %>% addTiles() %>% setView(lat = 30.2621, lng = -97.7382, zoom = 17)
```
Вот скриншот того, что я вижу на своем слайде xaringan:
И это фактический html-код, который отображается в поле на слайде:
<div id="htmlwidget-627abe20cf1eb0297594" style="width:100%;height:432px;" class="leaflet html-widget"></div>
<script type="application/json" data-for="htmlwidget-627abe20cf1eb0297594">{"x":{"options":{"crs":{"crsClass":"L.CRS.EPSG3857","code":null,"proj4def":null,"projectedBounds":null,"options":{}}},"calls":[{"method":"addTiles","args":["//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",null,null,{"minZoom":0,"maxZoom":18,"tileSize":256,"subdomains":"abc","errorTileUrl":"","tms":false,"noWrap":false,"zoomOffset":0,"zoomReverse":false,"opacity":1,"zIndex":1,"detectRetina":false,"attribution":"amp;copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>"}]}],"setView":[[30.2621,-97.7382],17,[]]},"evals":[],"jsHooks":[]}</script>
Поскольку это работает на чужой машине, я предполагаю, что проблема должна быть как-то связана с моей настройкой. Я попытался перезапустить RStudio и переустановить xaringan, но после этого у меня не осталось идей, что проверить. Любые предложения будут с благодарностью!
Вот моя информация о сеансе, на случай, если это может помочь диагностировать проблему:
> sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.7
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib
locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.0.3 rsconnect_0.8.16 htmltools_0.5.1.1 tools_4.0.3 xaringan_0.19 yaml_2.2.1
[7] rmarkdown_2.6 knitr_1.30 xfun_0.20 digest_0.6.27 rlang_0.4.10 evaluate_0.14
Комментарии:
1. Я вижу то же самое, что и вы, и я не могу определить причину. Я подозреваю, что это ошибка, внесенная в какое-то обновление пакета: я бы сравнил версии пакетов между вашей системой и вашими коллегами, чтобы увидеть, что отличается, и попробуйте установить старые версии (используя
remotes::install_version()
), чтобы узнать, можете ли вы определить, какой пакет вызывает проблему. (Возможно, лучше всего запускатьsessionInfo()
в самом документе, на случай, если он собирает разные пакеты.)2. Спасибо за это предложение @user2554330! Вы были правы: у моего коллеги было
rmarkdown_2.5
, тогда как у меня былоrmarkdown_2.6
. Установка версии v2.5 исправила проблему!
Ответ №1:
Это несовместимость между недавним изменением rmarkdown
и xaringan
. Текущая версия Github xaringan
, доступная как
remotes::install_github("yihui/xaringan")
исправлено: обсуждение здесь: https://github.com/yihui/xaringan/issues/293 . Он включает в себя обходной путь, если вы не хотите устанавливать неизданное xaringan
.