还尝试在终端中尝试以下代码,对于某些人有效,但对我无效。我获得了html文件输出,但仍然没有地图。它来自于post。也许对你有用。
Rscript -e "library(knitr); library(rmarkdown);
rmarkdown::render('index.Rmd', output_file='index.html')"
我确定是 Plotly。因为 ggplot 正常工作。
更新:
运行 install.packages("webshot")
重新安装/更新 webshot 包,然后再次运行 webshot::install_phantomjs()
,最后运行library(knitr); library(rmarkdown); rmarkdown::render('index.Rmd', output_file='index.html')
。它可以正常工作。html 文件有一个 Plotly 地图,尽管它不会出现在 Knitr 预览窗口中。
更新:
通过添加以下代码,我能够在侧边栏中显示地图。参考这个post。
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>')