IPython 笔记本中嵌入的 Tableau 可视化
Tableau viz embedded in IPython notebook
我已经在 Tableau public 上发布了 Tableau 9.3 可视化:
https://public.tableau.com/profile/michel.page#!/vizhome/exercice1/Courbesventesetprofit
我已通过集成 Tableau public 可视化页面上的 'Share' 按钮给出的代码,成功将此可视化显示在网页中。
现在我想做同样的事情,但在 IPython 笔记本中。这似乎是可能的,因为我在 nbviewer 中看到了一个例子:http://nbviewer.jupyter.org/gist/msund/96bd1d837f4139b2558d
我已将 'Share' 按钮脚本代码集成到 Markdown 单元格中,但当单元格为 运行 时,可视化项不会显示。当我查看浏览器控制台时,似乎 js 代码和对象标签被清理了,即使我告诉 IPython 信任笔记本。
有什么解决方法吗?
如果您希望 Tableau viz 显示在您的 Jupyter 笔记本中,请在普通单元格中使用 %%HTML 魔法:
%%HTML
<div class='tableauPlaceholder' id='viz1474058356757' style='position: relative'><noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/ex/exercice1/Courbesventesetprofit/1_rss.png' style='border: none' /></a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='site_root' value='' /><param name='name' value='exercice1/Courbesventesetprofit' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/ex/exercice1/Courbesventesetprofit/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1474058356757'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*0.75)+'px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
这是关于您还可以用魔法做什么的重要资源:https://blog.dominodatalab.com/lesser-known-ways-of-using-notebooks/
基本上你需要做的就是这个
步骤 1) 从 Tableau 工作簿
复制 java 脚本标签
第 2 步)转到并在您的 jupyter 单元格代码中添加代码,如下所示
与 R 和 Python 相比,Tableau 是一种更快的数据可视化方法。我能想出的最佳做法是在 tableau 中创建时 将大小设置为自动 ,然后在 Tableau Public 上共享它,然后在您之后放置如下嵌入代码发布。
%%HTML
<Embed Code Here>
在此处查找示例:
https://www.kaggle.com/andyxie/tableau-sharing-best-practice/
我已经在 Tableau public 上发布了 Tableau 9.3 可视化: https://public.tableau.com/profile/michel.page#!/vizhome/exercice1/Courbesventesetprofit
我已通过集成 Tableau public 可视化页面上的 'Share' 按钮给出的代码,成功将此可视化显示在网页中。
现在我想做同样的事情,但在 IPython 笔记本中。这似乎是可能的,因为我在 nbviewer 中看到了一个例子:http://nbviewer.jupyter.org/gist/msund/96bd1d837f4139b2558d
我已将 'Share' 按钮脚本代码集成到 Markdown 单元格中,但当单元格为 运行 时,可视化项不会显示。当我查看浏览器控制台时,似乎 js 代码和对象标签被清理了,即使我告诉 IPython 信任笔记本。
有什么解决方法吗?
如果您希望 Tableau viz 显示在您的 Jupyter 笔记本中,请在普通单元格中使用 %%HTML 魔法:
%%HTML
<div class='tableauPlaceholder' id='viz1474058356757' style='position: relative'><noscript><a href='#'><img alt=' ' src='https://public.tableau.com/static/images/ex/exercice1/Courbesventesetprofit/1_rss.png' style='border: none' /></a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='site_root' value='' /><param name='name' value='exercice1/Courbesventesetprofit' /><param name='tabs' value='yes' /><param name='toolbar' value='yes' /><param name='static_image' value='https://public.tableau.com/static/images/ex/exercice1/Courbesventesetprofit/1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1474058356757'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*0.75)+'px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
这是关于您还可以用魔法做什么的重要资源:https://blog.dominodatalab.com/lesser-known-ways-of-using-notebooks/
基本上你需要做的就是这个
步骤 1) 从 Tableau 工作簿
复制 java 脚本标签第 2 步)转到并在您的 jupyter 单元格代码中添加代码,如下所示
与 R 和 Python 相比,Tableau 是一种更快的数据可视化方法。我能想出的最佳做法是在 tableau 中创建时 将大小设置为自动 ,然后在 Tableau Public 上共享它,然后在您之后放置如下嵌入代码发布。
%%HTML
<Embed Code Here>
在此处查找示例: https://www.kaggle.com/andyxie/tableau-sharing-best-practice/