首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jupyterlab中居中输出Altair (包括将其导出为HTML时)

问在Jupyterlab中居中输出Altair (包括将其导出为HTML时)
EN

Stack Overflow用户
提问于 2020-11-06 04:36:25
回答 1查看 174关注 0票数 1

如何在Jupyterlab中居中对齐Altair图表,使其在导出的HTML中保持居中?

以下代码使notebook中的绘图居中;但是,当我将notebook导出为HTML时,输出为空/空白。

代码语言:javascript
复制
import altair as alt
import pandas as pd
from IPython.core.display import display, HTML

df=pd.DataFrame({'a': [1,2,3], 'b': [2,3,4]})

c=alt.Chart(df).mark_bar().encode(
    x='a',
    y='b'
)

s=f"""
<div style="display:flex;justify-content:center;align-items:center;width:100%;height:100%;">
  <div>{c.to_html()}</div>
</div>
"""

display(HTML(s))

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-06 05:56:33

很难确切地知道如何回答你的问题,因为在显示和导出笔记本时(甚至在jupyter notebook和jupyterlab之间)有太多的变量。

我怀疑图表在导出时没有显示的原因可能是因为您使用的是一个简单的HTML输出,该输出不适用于Jupyter中默认的notebook导出。

这是一个小技巧,但您可以访问默认的notebook HTML输出,它可以使用或不使用requirejs,如下所示:

代码语言:javascript
复制
with alt.renderers.enable('default'):
  html = c._repr_mimebundle_()['text/html']

相反,使用该HTML应该可以在活动笔记本和HTML导出中工作:

代码语言:javascript
复制
import altair as alt
import pandas as pd
from IPython.core.display import display, HTML

df=pd.DataFrame({'a': [1,2,3], 'b': [2,3,4]})

c=alt.Chart(df).mark_bar().encode(
    x='a',
    y='b'
)
with alt.renderers.enable('default'):
  html = c._repr_mimebundle_()['text/html']

s=f"""
<div style="display:flex;justify-content:center;align-items:center;width:100%;height:100%;">
  {html}
</div>
"""

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

https://stackoverflow.com/questions/64704905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档