Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用nbformat生成Jupyter笔记本-不显示Altair图表

使用nbformat生成Jupyter笔记本-不显示Altair图表
EN

Stack Overflow用户
提问于 2019-11-11 18:58:21
回答 1查看 157关注 0票数 1

我正在尝试以编程方式生成一个notebook,执行它,并使用nbformat转换为HTML。

代码基本上是这样的:

代码语言:javascript
运行
AI代码解释
复制
import nbformat as nbf 
from nbconvert.preprocessors import ExecutePreprocessor
from nbconvert import HTMLExporter
 
nb = nbf.v4.new_notebook()
nb.cells = [nbf.v4.new_code_cell("""
   import altair as alt
   alt.renderers.enable("notebook")
   # ... load df
   alt.Chart(df).mark_point().encode(x='x', y='y')
""")]

ep = ExecutePreprocessor(timeout=600, kernel_name='python3')
ep.preprocess(nb, {'metadata': {'path': '.'}})

html_exporter = HTMLExporter()      
html_exporter.template_file = 'basic'
(body, resources) = html_exporter.from_notebook_node(nb)
with open('out.html', 'w') as f:
    f.write(body)

流程运行得很好,它生成了一个笔记本和一个HTML文件,并且执行了所有代码。但是,代码单元格的输出如下所示(无图表):

代码语言:javascript
运行
AI代码解释
复制
<vega.vegalite.VegaLite at 0x7f80c4d8a090>

当我将笔记本写出为.ipynb文件并手动执行时,在相同的环境中,图表将按预期显示。可以这样使用牛郎星吗?我想知道我在Python会话中运行nbformat会不会有什么不同,也许它只能在浏览器中呈现图表?

EN

回答 1

Stack Overflow用户

发布于 2019-11-11 20:10:37

通过nbformat生成notebook和运行notebook live之间的区别在于,nbformat没有附加前端。这在这里很重要,因为对于Altair图表,前端notebook扩展是呈现图表的方式。

那么,当您在生成notebook后打开它时,为什么呈现的图表没有显示出来呢?这是因为Jupyter notebook的安全模型:当打开一个新的不可信的notebook时,notebook不会执行现有的Javascript,因为这将是一个简单的攻击路径(例如,攻击者可以使用javascript发布一个notebook,在加载时执行python代码,在您有机会阅读notebook内容之前,执行python代码来搜索硬盘中的敏感信息并将其发送给攻击者)。

因此,在呈现图表时,vega notebook扩展会生成一个PNG预览并将其保存到notebook,因此当您与其他人共享它时,他们会得到一个静态图表预览作为占位符,直到他们实际执行notebook为止。但是,如果您在没有前端的情况下执行notebook,则不会生成此PNG预览,因此在打开notebook时什么也看不到。

解决这个问题的最好方法是使用JupyterLab而不是Juptyer Notebook。在JupyterLab中,牛郎星图表是使用VegaLite解释的VegaLite模拟类型保存的,并转换为图表。这不涉及从notebook执行任意javascript,因此您以这种方式创建的图表将在JupyterLab加载时呈现在notebook中。因为classic不支持基于mimebundle的渲染,所以在classic notebook中不使用此路径。

如果您必须使用Jupyter Notebook而不是JupterLab,那么除了使用诸如selenium之类的无头浏览器引擎以编程方式执行您的notebook以及将呈现JupterLab预览的浏览器前端之外,没有任何方法可以解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58807145

复制
相关文章
使用Jekyll显示Jupyter笔记本
Jekyll是一个用Ruby编写的静态站点生成器,支持博客并与Github页面整合。因为Github只负责托管,这种设置使数据分析共享和可视化变得简单。Jekyll提供了各种主题和插件,因此用户无需担心Web开发。
eru
2018/09/13
3.9K0
使用Jekyll显示Jupyter笔记本
​再见 Seaborn!Altair 数据可视化已超神
数据可视化对于通过将数据转换为视觉效果来揭示数据中隐藏的趋势和模式非常重要。为了可视化任何形式的数据,我们都可能在某个时间点使用过数据透视表和图表,如条形图、直方图、饼图、散点图、折线图、基于地图的图表等。这些很容易理解并帮助我们传达准确的信息。基于详细的数据分析,我们可以决定如何最好地利用手头的数据,帮助我们做出明智的决定。
数据STUDIO
2021/12/27
9.6K1
​再见 Seaborn!Altair 数据可视化已超神
Python5个数据可视化工具
如果您了解并使用上面提到的库,那么您就处于进化的正确轨道上。它们可以帮助生成一些令人拍案的可视化效果,语法也不难。一般来说,我更喜欢Plotly+Cufflinks和 D3.js. 以下详细道来:
数说君
2019/05/29
4.4K0
Python奇淫技巧,5个数据可视化工具
数据可视化的工具和程序库已经极大丰盛,当你习惯其中一种或数种时,你会干得很出色,但是如果你因此而沾沾自喜,就会错失从青铜到王者的新工具和程序库。如果你仍然坚持使用Matplotlib(这太神奇了),Seaborn(这也很神奇),Pandas(基本,简单的可视化)和Bokeh,那么你真的需要停下来了解一下新事物了。例如,python中有许多令人惊叹的可视化库,而且通用化程度已经很高,例如下面这五个:
昱良
2019/07/04
3.5K0
Python奇淫技巧,5个数据可视化工具
数据可视化的工具和程序库已经极大丰盛,当你习惯其中一种或数种时,你会干得很出色,但是如果你因此而沾沾自喜,就会错失从青铜到王者的新工具和程序库。如果你仍然坚持使用Matplotlib(这太神奇了),Seaborn(这也很神奇),Pandas(基本,简单的可视化)和Bokeh,那么你真的需要停下来了解一下新事物了。例如,python中有许多令人惊叹的可视化库,而且通用化程度已经很高,例如下面这五个:
Python数据科学
2019/05/16
4.1K0
Python奇淫技巧,5个数据可视化工具
Python奇淫技巧,5个数据可视化工具
数据可视化的工具和程序库已经极大丰盛,当你习惯其中一种或数种时,你会干得很出色,但是如果你因此而沾沾自喜,就会错失从青铜到王者的新工具和程序库。如果你仍然坚持使用Matplotlib(这太神奇了),Seaborn(这也很神奇),Pandas(基本,简单的可视化)和Bokeh,那么你真的需要停下来了解一下新事物了。例如,python中有许多令人惊叹的可视化库,而且通用化程度已经很高,例如下面这五个:
abs_zero
2019/05/17
4.1K0
Python奇淫技巧,5个数据可视化工具
Python奇淫技巧,5个炫酷的数据可视化工具
数据可视化的工具和程序库已经极大丰盛,当你习惯其中一种或数种时,你会干得很出色,但是如果你因此而沾沾自喜,就会错失从青铜到王者的新工具和程序库。如果你仍然坚持使用Matplotlib(这太神奇了),Seaborn(这也很神奇),Pandas(基本,简单的可视化)和Bokeh,那么你真的需要停下来了解一下新事物了。例如,python中有许多令人惊叹的可视化库,而且通用化程度已经很高,例如下面这五个:
1480
2019/06/14
8.1K0
python数据可视化第三方库有哪些_数据可视化!看看程序员大佬都推荐的几大Python库…
数据可视化是数据分析中极为重要的部分,而数据可视化图表(如条形图,散点图,折线图,地理图等)也是非常关键的一环。Python作为数据分析中最流行的编程语言之一,有几个库可以创建精美而复杂的数据可视化,允许分析人员和统计人员通过方便地在一处提供界面和数据可视化工具而轻松地根据其规范创建可视数据模型!
全栈程序员站长
2022/08/15
2.8K0
使用ichartjs生成图表
官网:http://www.ichartjs.com/   ichartjs 是一款基于HTML5的图形库。使用纯javascript语言, 利用HTML5的canvas标签绘制各式图形。 ichartjs致力于为您的应用提供简单、直观、可交互的体验级图表组件。是WEB/APP图表展示方面的解决方案 。如果你正在开发HTML5的应用,ichartjs正好适合您。 ichartjs目前支持饼图、环形图、折线图、面积图、柱形图、条形图。ichartjs是基于Apache License 2.0协议的开源项目。
二十三年蝉
2018/03/01
1.8K0
使用ichartjs生成图表
独家 | 几个Jupyter笔记本的使用技巧
作者:Zolzaya Luvsandorj翻译:陈之炎校对:赵茹萱 本文约2400字,建议阅读5分钟本文为你介绍助力工作流文档化的几个实用技巧。
数据派THU
2021/12/31
1.5K0
独家 | 几个Jupyter笔记本的使用技巧
高级,这个Python库助力pandas智能可视化分析
Pandas是用于数据处理的核心库,它也可以进行简单的可视化,绘制散点、折线、直方等基础图表都不在话下。
朱卫军 AI Python
2022/04/03
6750
高级,这个Python库助力pandas智能可视化分析
当我做 hackathon 时我在做什么 (2)
前文中提到,我做的第二个项目是个可视化的项目,名字叫 deneb。deneb 是天鹅座的一等星,也是夏季大三角和北十字两个星群的端点之一。deneb 是对 vega-lite 的封装,受 同样封装了 vega-ltie,深得我喜爱的 Python 的库 altair 的启发。嗯,deneb - vega - altair,聪明的你一定想到了我为什么起这样一个名字:
tyrchen
2021/01/29
2K0
当我做 hackathon 时我在做什么 (2)
不吹不黑,jupyter lab 3.0客观使用体验
jupyter lab于近期发布了其具有里程碑意义的3.0版本,随之带来的一些重要新特性,想必广大读者朋友已在各大公众号所翻译转载的jupyter lab团队官方介绍文章中知晓了很多。
Feffery
2021/01/13
1.2K0
不吹不黑,jupyter lab 3.0客观使用体验
不吹不黑,jupyter lab 3.0客观使用体验
jupyter lab于近期发布了其具有里程碑意义的3.0版本,随之带来的一些重要新特性,想必广大读者朋友已在各大公众号所翻译转载的jupyter lab团队官方介绍文章中知晓了很多。
朱卫军 AI Python
2022/04/03
1.1K0
不吹不黑,jupyter lab 3.0客观使用体验
python使用plotly批量生成图表
本人在使用groovy爬取了全国3000+城市的历史天气之后,需要把每个城市的历史天气都绘制一张Time Series表格,用来反映各地的最高温最低温温差的变化曲线。这里遇到了一个问题,每次plotly绘制完图标总会调起系统浏览器打开呈现,一旦我批量生成N多张表格时,电脑就会卡死了。在使用中文作为文件名的时候遇到了一个错误,这个错误刚好能巧妙解决这个问题。在不同编码格式的字符拼接时文件路径时,会报错,报错内容如下: 'ascii' codec can't encode characters in position 69-70: ordinal not in range(128)
FunTester
2019/10/29
8930
python使用plotly批量生成图表
使用图表显示数据趋势
有时候,在用图表表现数据时,给图表添加一些元素可能会显得更清晰。例如,在比较预算和实际情况时,可以添加一些趋势数据,并在图表中呈现。如下图1所示。
fanjy
2022/11/16
8070
使用图表显示数据趋势
带评分的Jupyter资源列表:270个开源项目,总计24w星,帮你快速找代码
这份超级清单——「Best-of Jupyter」,帮你整理了270多个精选开源项目,总计24万颗星。
量子位
2021/02/26
9560
带评分的Jupyter资源列表:270个开源项目,总计24w星,帮你快速找代码
7步搞定Python数据可视化,业界大牛出品教程,Jupyter、Colab都有在线版
用Excel的话,很难展示出这种效果,那……不如用Python?不用手动排版设计,简单的代码就能直接运行出结果。
代码医生工作室
2019/08/29
1.4K0
7步搞定Python数据可视化,业界大牛出品教程,Jupyter、Colab都有在线版
Jupyter Notebook数据格式解析
经常用Jupyter Notebook写Python代码,看到这个需求不是想去找轮子而是想自己做解析和合并。通过深入文件格式去加深对Jupyter Notebook的了解。用Jupyter 写代码有很多优势:交互式的编程体验、文档图表整合、扩展性强而且非常容易复现结果。
蛰虫始航
2019/09/29
1.7K0
点击加载更多

相似问题

Altair未在jupyter笔记本中呈现图表

13

nbformat尝试打开jupyter笔记本时出错

1178

Python Altair Vega图表不显示

10

更新jupyter笔记本中的图表

10

Altair: Javascript错误阻止图表显示

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文