R 错误:";HTML小部件不能用纯文本表示;

R 错误:";HTML小部件不能用纯文本表示;,r,jupyter,R,Jupyter,当我试着用Jupyter运行这个程序时: 但我得到: UseMethod(“嵌入笔记本”)中的错误:没有适用于“嵌入笔记本”的方法应用于类“c”(“传单”、“htmlwidget”)的对象。 我如何绘制这种图形?嵌入式笔记本是专门为plotly对象定义的。我会查看文档,看看传单是否有它自己的等效功能 或者,由于它是一个html小部件,您可以将其保存为html文件,然后将该文件嵌入笔记本中的iframe中 library(IRdisplay) htmlwidgets::saveWidget(m,

当我试着用Jupyter运行这个程序时:

但我得到:

UseMethod(“嵌入笔记本”)中的错误:没有适用于“嵌入笔记本”的方法应用于类“c”(“传单”、“htmlwidget”)的对象。


我如何绘制这种图形?

嵌入式笔记本是专门为plotly对象定义的。我会查看文档,看看传单是否有它自己的等效功能

或者,由于它是一个html小部件,您可以将其保存为html文件,然后将该文件嵌入笔记本中的iframe中

library(IRdisplay)
htmlwidgets::saveWidget(m, "m.html")
display_html('<iframe src="m.html" width=100% height=450></iframe>')
库(IRdisplay)
htmlwidgets::saveWidget(m,“m.html”)
显示html(“”)
如果您不想在文件夹中保留一堆html文件,还可以将小部件的原始html输入iframe,然后使用

rawHTML = base64enc::dataURI(mime = "text/html;charset=utf-8", file = "m.html")
display_html(paste("<iframe src=", rawHTML, "width=100% height=450></iframe>", sep = "\""))
unlink("m.html")
rawHTML=base64enc::dataURI(mime=“text/html;charset=utf-8”,file=“m.html”)
显示html(粘贴(“,sep=“\”))
取消链接(“m.html”)
但我发现这会在最新版本的Chrome上产生一个错误

如果有帮助的话,我从embed_notebook的源代码中拼凑了以下函数

embed = function(x, height) {
    library(IRdisplay)
    tmp = tempfile(fileext = ".html")
    htmlwidgets::saveWidget(x, tmp)
    rawHTML = base64enc::dataURI(mime = "text/html;charset=utf-8", file = tmp)
    display_html(paste("<iframe src=", rawHTML, "width=100% height=", height, "id=","igraph", "scrolling=","no","seamless=","seamless", "frameBorder=","0","></iframe>", sep = "\""))
    unlink(tmp)
}
embed=函数(x,高度){
图书馆(IRdisplay)
tmp=tempfile(fileext=“.html”)
htmlwidgets::saveWidget(x,tmp)
rawHTML=base64enc::dataURI(mime=“text/html;charset=utf-8”,file=tmp)
显示html(粘贴(“,sep=“\”))
取消链接(tmp)
}

但同样,这可能不适用于Chrome。

#cromulten问题在于
htmlwidgets::saveWidget(m,“m.html”)
doesen没有创建html文件。@Simone如果这是侮辱性的,我很抱歉,但是您的R版本中是否安装了htmlwidgets包?如果安装了,我没有足够的经验知道是什么导致了您的问题。是的,我有
htmlwidgets
packageinstalled@cromulent它也不会创建html文件当我在Jupyter中的r内核上运行时,请告诉我。在RStudio中工作正常。我在JupyterHub上没有pandoc,所以设置selfcontained=FALSE,但是否有任何其他东西可以阻止它在Jupyter中运行?
rawHTML = base64enc::dataURI(mime = "text/html;charset=utf-8", file = "m.html")
display_html(paste("<iframe src=", rawHTML, "width=100% height=450></iframe>", sep = "\""))
unlink("m.html")
embed = function(x, height) {
    library(IRdisplay)
    tmp = tempfile(fileext = ".html")
    htmlwidgets::saveWidget(x, tmp)
    rawHTML = base64enc::dataURI(mime = "text/html;charset=utf-8", file = tmp)
    display_html(paste("<iframe src=", rawHTML, "width=100% height=", height, "id=","igraph", "scrolling=","no","seamless=","seamless", "frameBorder=","0","></iframe>", sep = "\""))
    unlink(tmp)
}