0
我有一个文件加载一些文件,处理它们,然后将Plot.ly图打印到文档中。除了尝试在另一个函数或循环中调用绘图函数之外,一切都可行。这里是我的代码结构:R:从功能内将Plot.ly打印成RMarkdown HTML
```{r, results='asis', echo=TRUE}
my_plotly_function <- function(my_dataframe, ...){
suppressPackageStartupMessages(library("plotly"))
my_plot <- plot_ly(data = my_dataframe, x = Column1, y = Column2, mode = "markers")
return(my_plot)
}
sample_file_list <- c("sample4_control.tsv", "sample4_sample5.tsv", "sample5_control.tsv")
# this works
my_plotly_function(read.delim(sample_file_list[1],header = TRUE,sep = '\t'))
# this doesn't work
for(i in seq_along(sample_file_list)){
my_plotly_function(read.delim(sample_file_list[i],header = TRUE,sep = '\t'))
}
# this does not work either
for(i in seq_along(sample_file_list)){
print(my_plotly_function(read.delim(sample_file_list[i],header = TRUE,sep = '\t')))
}
# this also does not work
for(i in seq_along(sample_file_list)){
my_plot <- my_plotly_function(read.delim(sample_file_list[i],header = TRUE,sep = '\t'))
print(my_plot)
}
```
任何想法?我知道在函数或循环中使用时,某些图必须是print
'd,但Plot.ly似乎并不像这样工作,它似乎只在Plot.ly对象直接返回到文档中时才起作用。到目前为止,我还没有想出一种方法来使用它,而不将其硬编码到文档中,这并不理想。
尝试一个函数返回一个列表:'Map(function(x,y,z)my_plotly_function x,header = y,sep = z),sample_file_list,TRUE,'\ t')' – Shape
我试过了,虽然它在RStudio中工作,但编织RMD文档时不会在HTML中输出绘图。事实上,我查看了HTML源代码,并且情节根本就不存在。我可以看到文档其他方面的JavaScript元素的源代码,但不能看到这些图。 – user5359531