Altair:指定默认启用的渲染器
Altair: specify a renderer that's enabled by default
除了在代码中调用 alt.renderers.enable('mimebundle')
之外,是否有启用渲染器的方法?因此,如果用户导入 altair,她不必执行任何其他操作?
比如在plotly中可以设置一个环境变量PLOTLY_RENDERER=plotly_mimetype
。 altair 有类似的东西吗?
不,除了调用 alt.renderers.enable
.
之外,Altair 目前没有任何机制来指定渲染器
但是如果您使用的是 Jupyter,您可以提供一个 IPython 启动脚本来执行此操作;例如,您可以在路径 ~/.ipython/profile_default/startup/start.py
中创建一个包含以下内容的文件:
import altair
altair.renderers.enable('notebook')
这将在任何 Jupyter/IPython 会话开始时执行。
如果您不希望在每个会话中导入 Altair,您可以在此文件中定义一个 Python import hook,它将在第一次导入 Altair 时执行自定义代码。例如,它可能看起来像这样:
import imp
import os
import sys
class _AltairImportHook(object):
def find_module(self, fullname, path=None):
if fullname != 'altair':
return None
self.module_info = imp.find_module(fullname, path)
return self
def load_module(self, fullname):
"""Loads Altair normally and runs pre-initialization code."""
previously_loaded = fullname in sys.modules
altair = imp.load_module(fullname, *self.module_info)
if not previously_loaded:
try:
altair.renderers.enable('notebook')
except:
pass
return altair
sys.meta_path = [_AltairImportHook()] + sys.meta_path
除了在代码中调用 alt.renderers.enable('mimebundle')
之外,是否有启用渲染器的方法?因此,如果用户导入 altair,她不必执行任何其他操作?
比如在plotly中可以设置一个环境变量PLOTLY_RENDERER=plotly_mimetype
。 altair 有类似的东西吗?
不,除了调用 alt.renderers.enable
.
但是如果您使用的是 Jupyter,您可以提供一个 IPython 启动脚本来执行此操作;例如,您可以在路径 ~/.ipython/profile_default/startup/start.py
中创建一个包含以下内容的文件:
import altair
altair.renderers.enable('notebook')
这将在任何 Jupyter/IPython 会话开始时执行。
如果您不希望在每个会话中导入 Altair,您可以在此文件中定义一个 Python import hook,它将在第一次导入 Altair 时执行自定义代码。例如,它可能看起来像这样:
import imp
import os
import sys
class _AltairImportHook(object):
def find_module(self, fullname, path=None):
if fullname != 'altair':
return None
self.module_info = imp.find_module(fullname, path)
return self
def load_module(self, fullname):
"""Loads Altair normally and runs pre-initialization code."""
previously_loaded = fullname in sys.modules
altair = imp.load_module(fullname, *self.module_info)
if not previously_loaded:
try:
altair.renderers.enable('notebook')
except:
pass
return altair
sys.meta_path = [_AltairImportHook()] + sys.meta_path