{leaflet}
や{plotly}
で作成したインタラクティブなjavascript系コンテンツをHugo + Blogdown + GitHub Pageに埋め込むときのメモ。
{widjetFrame}
がいいみたいなことを{blogdown}
作者のYihui氏が書いているが、自分の環境ではなんだかうまくいかなかった。 issueで触れられているwidth = '100%'
の問題ではない。 代わりに、ググって引っかかったページを参考に、htmlwidgets::saveWidget()
でhtmlとして保存する -> htmlのiframeタグ内で書き込むというアプローチを採用する。
htmlファイルのパスが厄介で、すこし詰まった。 build_site()
したときの作業ディレクトリは、それぞれ.Rmdファイルが保存されているパスになるので、そこからの相対パスで考える。 saveWidget()
で生成されるAPPNAME.html
は、build_site()
により、APPNAME/index.html
に変換されるので、serve_site()
では確認できないらしい。 leafletフォルダ、plotlyフォルダをcontent以下に作成して個別に管理する。
library(htmlwidgets)
leaflet
今度の学会のフライト経路を表示。
library(leaflet)
library(ggmap) # 地名から緯度経度をとってくる
library(geosphere) # 球体に直線を引く
geo_syd <- geocode("Sydney")
geo_ist <- geocode("Istanbul")
# `ggmap::geocode()`は短時間での使用に制限があるので、ループの力技で解決。
repeat(
if(is.na(geo_syd$lon)){
geo_syd <- geocode("Sydney")
} else {
break
}
)
repeat(
if(is.na(geo_ist$lon)){
geo_ist <- geocode("Istanbul")
} else {
break
}
)
leaflet_demo <-
geosphere::gcIntermediate(p1 = geo_syd, p2 = geo_ist, n = 200, addStartEnd = T) %>%
leaflet::leaflet() %>%
leaflet::addTiles() %>%
leaflet::addPolylines(color = "black")
# dir.create("../leaflet", showWarnings = FALSE)
setwd("../leaflet")
saveWidget(leaflet_demo, "demo.html", selfcontained = T)
setwd("../post")
plotly
Clarivate analyticsから取ってきたメジャーな雑誌のImpact factorの推移を表示。 念のため雑誌名は匿名化。
library(plotly)
if_data <-
dir("../../confidential_data/impact_factors/", full.names = T) %>%
map_df(~ read_csv(., skip = 1, col_types = cols()) %>%
mutate(year = parse_number(str_sub(..1, -10, -1))) %>%
mutate_at(.vars = c(1, 3:5), as.numeric)) %>%
janitor::clean_names() %>%
mutate(journal = tolower(full_journal_title))
high_impact_journals <-
if_data %>%
filter(year == 2016, rank <= 30) %>%
transmute(journal, id = factor(1:30))
plotly_demo <-
if_data %>%
filter(journal %in% high_impact_journals$journal) %>%
left_join(., high_impact_journals, by = "journal") %>%
plot_ly(x = ~ journal_impact_factor, y = ~ eigenfactor_score, size = ~ total_cites,
color = ~ id, frame = ~ year,
hoverinfo = "text",
# text = ~paste(full_journal_title), # 隠し
text = ~paste(id),
mode = "markers", type = "scatter", showlegend = F)
# dir.create(".//plotly", showWarnings = FALSE)
setwd("../plotly")
saveWidget(plotly_demo, "demo.html", selfcontained = T)
setwd("../post")
Shiny
Shinyは独立したhtmlとして出力することができないので、shinyappsあたりでデプロイして引っ張るのがいいらしい。 以下のchunkを追加すると埋め込みまで完了。
knitr::include_app("https://USER_NAME.shinyapps.io/APP_NAME/")
Session info
devtools::session_info()
## setting value
## version R version 3.5.0 (2018-04-23)
## system x86_64, darwin15.6.0
## ui X11
## language (EN)
## collate en_US.UTF-8
## tz Australia/Brisbane
## date 2018-05-19
##
## package * version date source
## assertthat 0.2.0 2017-04-11 CRAN (R 3.5.0)
## backports 1.1.2 2017-12-13 CRAN (R 3.5.0)
## base * 3.5.0 2018-04-24 local
## bindr 0.1.1 2018-03-13 CRAN (R 3.5.0)
## bindrcpp * 0.2.2 2018-03-29 CRAN (R 3.5.0)
## blogdown 0.6 2018-04-18 CRAN (R 3.5.0)
## bookdown 0.7 2018-02-18 CRAN (R 3.5.0)
## broom 0.4.4 2018-03-29 CRAN (R 3.5.0)
## cellranger 1.1.0 2016-07-27 CRAN (R 3.5.0)
## cli 1.0.0 2017-11-05 CRAN (R 3.5.0)
## colorspace 1.3-2 2016-12-14 CRAN (R 3.5.0)
## compiler 3.5.0 2018-04-24 local
## crayon 1.3.4 2017-09-16 CRAN (R 3.5.0)
## crosstalk 1.0.0 2016-12-21 CRAN (R 3.5.0)
## data.table 1.10.4-3 2017-10-27 CRAN (R 3.5.0)
## datasets * 3.5.0 2018-04-24 local
## devtools 1.13.5 2018-02-18 CRAN (R 3.5.0)
## digest 0.6.15 2018-01-28 CRAN (R 3.5.0)
## dplyr * 0.7.4 2017-09-28 CRAN (R 3.5.0)
## evaluate 0.10.1 2017-06-24 CRAN (R 3.5.0)
## forcats * 0.3.0 2018-02-19 CRAN (R 3.5.0)
## foreign 0.8-70 2017-11-28 CRAN (R 3.5.0)
## geosphere * 1.5-7 2017-11-05 CRAN (R 3.5.0)
## ggmap * 2.6.1 2016-01-23 CRAN (R 3.5.0)
## ggplot2 * 2.2.1 2016-12-30 CRAN (R 3.5.0)
## glue 1.2.0 2017-10-29 CRAN (R 3.5.0)
## graphics * 3.5.0 2018-04-24 local
## grDevices * 3.5.0 2018-04-24 local
## grid 3.5.0 2018-04-24 local
## gtable 0.2.0 2016-02-26 CRAN (R 3.5.0)
## haven 1.1.1 2018-01-18 CRAN (R 3.5.0)
## hms 0.4.2 2018-03-10 CRAN (R 3.5.0)
## htmltools 0.3.6 2017-04-28 CRAN (R 3.5.0)
## htmlwidgets * 1.2 2018-04-19 CRAN (R 3.5.0)
## httpuv 1.4.3 2018-05-10 cran (@1.4.3)
## httr 1.3.1 2017-08-20 CRAN (R 3.5.0)
## janitor 1.0.0 2018-03-22 CRAN (R 3.5.0)
## jpeg 0.1-8 2014-01-23 CRAN (R 3.5.0)
## jsonlite 1.5 2017-06-01 CRAN (R 3.5.0)
## knitr 1.20 2018-02-20 CRAN (R 3.5.0)
## later 0.7.2 2018-05-01 cran (@0.7.2)
## lattice 0.20-35 2017-03-25 CRAN (R 3.5.0)
## lazyeval 0.2.1 2017-10-29 CRAN (R 3.5.0)
## leaflet * 2.0.0 2018-04-20 CRAN (R 3.5.0)
## lubridate 1.7.4 2018-04-11 CRAN (R 3.5.0)
## magrittr 1.5 2014-11-22 CRAN (R 3.5.0)
## mapproj 1.2.6 2018-03-29 CRAN (R 3.5.0)
## maps 3.3.0 2018-04-03 CRAN (R 3.5.0)
## memoise 1.1.0 2017-04-21 CRAN (R 3.5.0)
## methods * 3.5.0 2018-04-24 local
## mime 0.5 2016-07-07 CRAN (R 3.5.0)
## mnormt 1.5-5 2016-10-15 CRAN (R 3.5.0)
## modelr 0.1.1 2017-07-24 CRAN (R 3.5.0)
## munsell 0.4.3 2016-02-13 CRAN (R 3.5.0)
## nlme 3.1-137 2018-04-07 CRAN (R 3.5.0)
## parallel 3.5.0 2018-04-24 local
## pillar 1.2.1 2018-02-27 CRAN (R 3.5.0)
## pkgconfig 2.0.1 2017-03-21 CRAN (R 3.5.0)
## plotly * 4.7.1 2017-07-29 CRAN (R 3.5.0)
## plyr 1.8.4 2016-06-08 CRAN (R 3.5.0)
## png 0.1-7 2013-12-03 CRAN (R 3.5.0)
## promises 1.0.1 2018-04-13 CRAN (R 3.5.0)
## proto 1.0.0 2016-10-29 CRAN (R 3.5.0)
## psych 1.8.3.3 2018-03-30 CRAN (R 3.5.0)
## purrr * 0.2.4 2017-10-18 CRAN (R 3.5.0)
## R6 2.2.2 2017-06-17 CRAN (R 3.5.0)
## RColorBrewer 1.1-2 2014-12-07 CRAN (R 3.5.0)
## Rcpp 0.12.16 2018-03-13 CRAN (R 3.5.0)
## readr * 1.1.1 2017-05-16 CRAN (R 3.5.0)
## readxl 1.1.0 2018-04-20 CRAN (R 3.5.0)
## reshape2 1.4.3 2017-12-11 CRAN (R 3.5.0)
## RgoogleMaps 1.4.1 2016-09-18 CRAN (R 3.5.0)
## rjson 0.2.18 2018-05-05 CRAN (R 3.5.0)
## rlang 0.2.0 2018-02-20 CRAN (R 3.5.0)
## rmarkdown 1.9 2018-03-01 CRAN (R 3.5.0)
## rprojroot 1.3-2 2018-01-03 CRAN (R 3.5.0)
## rstudioapi 0.7 2017-09-07 CRAN (R 3.5.0)
## rvest 0.3.2 2016-06-17 CRAN (R 3.5.0)
## scales 0.5.0 2017-08-24 CRAN (R 3.5.0)
## shiny 1.1.0 2018-05-17 cran (@1.1.0)
## snakecase 0.9.1 2018-03-25 CRAN (R 3.5.0)
## sp 1.2-7 2018-01-19 CRAN (R 3.5.0)
## stats * 3.5.0 2018-04-24 local
## stringi 1.2.2 2018-05-02 cran (@1.2.2)
## stringr * 1.3.1 2018-05-10 cran (@1.3.1)
## tibble * 1.4.2 2018-01-22 CRAN (R 3.5.0)
## tidyr * 0.8.0 2018-01-29 CRAN (R 3.5.0)
## tidyverse * 1.2.1 2017-11-14 CRAN (R 3.5.0)
## tools 3.5.0 2018-04-24 local
## utils * 3.5.0 2018-04-24 local
## viridisLite 0.3.0 2018-02-01 CRAN (R 3.5.0)
## withr 2.1.2 2018-03-15 CRAN (R 3.5.0)
## xfun 0.1 2018-01-22 CRAN (R 3.5.0)
## xml2 1.2.0 2018-01-24 CRAN (R 3.5.0)
## xtable 1.8-2 2016-02-05 CRAN (R 3.5.0)
## yaml 2.1.18 2018-03-08 CRAN (R 3.5.0)