有同样的问题。当我执行slidify(index.Rmd)
时,有一条消息说PhantomJS not found
,并建议我运行webshot::install_phantomjs()
。所以我做了,错误消失了。但是,我仍然没有得到绘图的交互式地图输出。它是空白的。
还在终端中尝试了以下代码,该代码对某些人有效,但对我无效。我得到了 html 文件输出,但仍然没有地图。它来自这篇文章。它可能对你有用。
Rscript -e "library(knitr); library(rmarkdown);
rmarkdown::render('index.Rmd', output_file='index.html')"
我确信这是有计划的。因为 ggplots 工作正常。
更新:
通过运行重新安装/更新wetshot包install.packages("webshot")
,然后webshot::install_phantomjs()
再次运行,然后library(knitr); library(rmarkdown); rmarkdown::render('index.Rmd', output_file='index.html')
。有效。html 文件有一个绘图地图,尽管它没有出现在 Knitr 预览窗口中。
更新:
通过添加以下代码,我可以在侧面显示地图。参考这篇文章。
htmlwidgets::saveWidget(as_widget(p), "p.html")
cat('<iframe src="./p.html" width=100% height=100% allowtransparency="true"> </iframe>')
完整的上下文将在下面列出。
library(plotly)
cities <- readRDS("D:/R/data/cn_cities.rds")
cities <- cities[1:50,]
geo <- list(
scope = 'asia',
projection = list(type = 'Mercator'),
showland = TRUE,
landcolor = toRGB("gray85"),
countrycolor = toRGB("white"),
subunitcolor = toRGB("white"),
countrywidth = 1,
subunitwidth = 1)
p <- plot_geo(cities,
locationmode='CHN',
sizes=c(1, 200)) %>%
add_markers(x=~lng, y=~lat,
size=~sqrt(population),
hoverinfo="text",
text=~paste(city, "<br />", population)) %>%
layout(title='',
geo=geo)
htmlwidgets::saveWidget(as_widget(p), "p.html")
cat('<iframe src="./p.html" width=100% height=100% allowtransparency="true"> </iframe>')