frd*_*dbd 6 r knitr r-markdown plotly
我尝试使用循环或lapply在Rmarkdown文档中创建多个plotly数字.
R脚本:
require(plotly)
data(iris)
b <- lapply(setdiff(names(iris), c("Sepal.Length","Species")),
function(x) {
plot_ly(iris,
x = iris[["Sepal.Length"]],
y = iris[[x]],
mode = "markers")
})
print(b)
Run Code Online (Sandbox Code Playgroud)
效果很好,但是当它包含在knitr块中时会失败:
---
output: html_document
---
```{r,results='asis'}
require(plotly)
data(iris)
b <- lapply(setdiff(names(iris), c("Sepal.Length","Species")),
function(x) {
plot_ly(iris,
x = iris[["Sepal.Length"]],
y = iris[[x]],
mode = "markers")
})
print(b)
```
Run Code Online (Sandbox Code Playgroud)
我试着更换print(b)用的组合lapply eval并parse,但只有在显示最后一个数字.
我怀疑是一个范围/环境问题,但我找不到任何解决方案.
谢谢你的帮助.
相反的print(b),把b中htmltools::tagList(),如
```{r}
library(plotly)
b <- lapply(
setdiff(names(iris),
c("Sepal.Length","Species")),
function(x) {
plot_ly(iris,
x = iris[["Sepal.Length"]],
y = iris[[x]],
mode = "markers")
}
)
htmltools::tagList(b)
```
Run Code Online (Sandbox Code Playgroud)
注意:在Plotly v4之前,有必要使用Plotly as.widget()函数将Plotly对象转换为htmlwidgets .从Plotly v4开始,默认情况下它们是htmlwiget对象.
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |