2017-10-16 8 views
0

"HTMLウィジェットがプレーンテキストで表現できない":エラー:私はJupyter</em><em>することでこれを実行しようとすると

library(leaflet) 

m <- leaflet() %>% 
    addTiles() %>% # Add default OpenStreetMap map tiles 
    addMarkers(lng=174.768, lat=-36.852, popup="The birthplace of R") 
m # Print the map 

は、私はこのエラーを取得する:

HTML widgets cannot be represented in plain text (need html)

としては、私が試してみましたhere提案:

library(plotly) 
embed_notebook(m) 

を私は得る:

Error in UseMethod("embed_notebook"): no applicable method for 'embed_notebook' applied to an object of class "c('leaflet', 'htmlwidget')

どのように私は、グラフのこの種をプロットだろうか?

答えて

1

embed_notebookは、プロットオブジェクト用に特に定義されています。私はリーフレットが独自の同等の機能を持っているかどうかを調べるためにドキュメントを調べます。

これはHTMLウィジェットなので、HTMLファイルとして保存して、そのファイルをノートブックのiframeに埋め込むことができます。そして、これは

を使用して、それを削除するには、フォルダ内のhtmlファイルの束を維持したくない場合は、あなたもあなたのiframeにあなたのウィジェットの生のHTMLを入力することができます

library(IRdisplay) 
htmlwidgets::saveWidget(m, "m.html") 
display_html('<iframe src="m.html" width=100% height=450></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") 

しかし、これは最新バージョンの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) 
} 

のソースコードから一緒に次の関数を石畳しかし、再び、これはクロムのために動作しない場合があります。

+1

#cromulent問題は、htmlwidgets :: saveWidget(m、 "m.html")はhtmlファイルを作成しないことです。 – Simone

+0

@Simoneこれが侮辱的なことをお詫びしますが、ご使用のバージョンのRにhtmlwidgetsパッケージがインストールされていますか?もしあなたがそうしていれば、私はあなたの最後に何が問題を引き起こしているのか知るのに十分な経験はありません。 – cromulent

+0

はい、 'htmlwidgets'パッケージがインストールされています – Simone

関連する問題