【发布时间】: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