【问题标题】:Altair saver ValueError: Unsupported format: 'png'Altair 保护程序 ValueError:不支持的格式:'png'
【发布时间】:2020-10-17 11:28:38
【问题描述】:

当我尝试在 Jupyter Notebook 中将图表保存为 PNG 时,使用 Altair 保护程序时不断出现错误。 ValueError: Unsupported format: 'png'

我从here 知道我需要设置渲染器启用,从here 我知道 README 中有一个错字,所以我在第 5 行代码中是正确的。

运行以下命令:
视窗 10
康达 4.8.2
Python 3.8.3
altair 4.1.0 py_1 conda-forge
altair_saver 0.1.0 py_0 conda-forge
vega 3.4.0 py38h32f6830_0 conda-forge
硒 3.141.0 py38h9de7a3e_1001 conda-forge

import pandas as pd
import altair as alt
from altair_saver import save
alt.renderers.enable('default'); # if in jupyter, ; to suppress output
alt.renderers.enable('altair_saver', fmts=['vega-lite', 'png']);

mytaskbars = pd.DataFrame([
    {"task": "Task1a", "start": '2020-06-01', "end": '2020-09-30', "color": 'royalblue'},
    {"task": "Task1b", "start": '2020-06-01', "end": '2021-03-31', "color": 'deepskyblue'},
    {"task": "Task2", "start": '2020-06-01', "end": '2021-03-31', "color": 'red'},
    ])
    
mytaskbars["start"] = pd.to_datetime(mytaskbars["start"])
mytaskbars["end"] = pd.to_datetime(mytaskbars["end"])
    
    
chart = alt.Chart(mytaskbars).mark_bar(opacity=0.7).encode(
    x=alt.X('start', axis=alt.Axis(title='Date', labelAngle=-45, format = ("%b %Y"))),
     x2 = 'end',
    y=alt.Y('task', axis=alt.Axis(title=None)),
    color = alt.Color('color:N', scale = None)
    )
    
save(chart, "chart_202006.png")
chart

我也尝试了chart.save('chart_202006.png'),如here 所示,同样的错误。我认为该错误与渲染器行有某种关联,即使稍后会抛出该错误。

这是完整的回溯,根据 cmets 的要求:

ValueError                                Traceback (most recent call last)
<ipython-input-3-13a284c2aca9> in <module>
     19     )
     20 
---> 21 save(chart, "chart_202006.png")
     22 chart

~\anaconda3\envs\geospat_env\lib\site-packages\altair_saver\_core.py in save(chart, fp, fmt, mode, method, **kwargs)
     60     """
     61     if method is None:
---> 62         Saver = _get_saver_for_format(fmt=fmt, fp=fp)
     63     elif isinstance(method, type):
     64         Saver = method

~\anaconda3\envs\geospat_env\lib\site-packages\altair_saver\_core.py in _get_saver_for_format(fmt, fp)
     28         if fmt in s.valid_formats and s.enabled():
     29             return s
---> 30     raise ValueError(f"Unsupported format: {fmt!r}")
     31 
     32 

ValueError: Unsupported format: 'png'

【问题讨论】:

  • save() 命令与渲染器无关,因此该部分无关紧要。能否请您包含整个错误回溯?
  • @jakevdp 添加了完整的回溯

标签: jupyter-notebook save altair


【解决方案1】:

任何寻找快速复制粘贴解决方案的人:

$ pip install  altair_saver
$ npm install vega-lite vega-cli canvas

【讨论】:

    【解决方案2】:

    要将图表保存为 PNG,您需要的不仅仅是 altair_saver 包。您还需要 seleniumnode 依赖项,如 altair_saver 的 installation 部分所述。

    按照这些说明安装所需的依赖项,它将解决您的错误。

    【讨论】:

    • 它说“通过 conda-forge 安装 altair_saver 时会自动包含这些软件包”?并安装了硒,我编辑了问题来显示这个
    • 鉴于 altair_saver 在这里使用命令行实用程序,我怀疑它无法在 Windows 上正常工作。我建议在项目中提交一个错误。
    猜你喜欢
    • 2020-02-14
    • 2017-11-12
    • 1970-01-01
    • 2019-10-01
    • 2017-10-19
    • 2012-09-17
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多