You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.py文件(非Notebook环境)中查看Altair图表?

在Python脚本中运行Altair图表:解决NotImplementedError并正确渲染

这个问题其实挺常见的——Altair默认在Jupyter Notebook这类交互式环境中能自动适配渲染器,但在普通.py脚本(终端运行)里,它找不到预设的渲染方式,所以会抛出NotImplementedError。下面给你几种实用的解决方案,按推荐程度排序:

1. 用Altair自带的交互式查看器(最推荐)

Altair自带了altair_viewer渲染器,它会启动一个本地Web服务器,自动在你的默认浏览器中打开交互式图表,操作最简单。

只需在代码开头启用这个渲染器,最后调用chart.show()即可:

import altair as alt
from vega_datasets import data

# 启用altair_viewer渲染器
alt.renderers.enable('altair_viewer')

# 加载iris数据集并绘制带回归线的图表
iris = data.iris()
# 散点图
scatter = alt.Chart(iris).mark_point().encode(
    x='sepalWidth',
    y='petalWidth',
    color='species'
)
# 回归线
reg_line = alt.Chart(iris).transform_regression(
    'sepalWidth', 'petalWidth', method='linear'
).mark_line(color='red')

# 组合图表并显示
chart = scatter + reg_line
chart.show()

运行脚本后,终端会输出一个本地服务器地址(比如http://localhost:XXXX),同时浏览器会自动打开这个地址展示交互式图表。如果你的环境里没有altair_viewer,可以用pip install altair_viewer安装。

2. 导出为静态文件(HTML/PNG/SVG)

如果不需要交互式功能,或者需要把图表保存下来分享,直接导出成静态文件是个好选择:

  • 导出HTML:不需要额外依赖,直接调用save()方法,生成的HTML文件可以用任何浏览器打开:
    chart.save('iris_sepal_petal_regression.html')
    
  • 导出PNG/SVG:需要安装altair_saver库,以及对应的依赖(比如Node.js的vega-cli或者Selenium浏览器驱动)。先安装依赖:
    pip install altair_saver
    # 若选择用vega-cli,需先装Node.js,再执行:
    # npm install -g vega vega-lite vega-cli
    
    然后导出图片:
    chart.save('iris_sepal_petal_regression.png')  # 或.svg
    

3. 用Matplotlib渲染

如果你已经熟悉Matplotlib的生态,也可以把Altair图表渲染成Matplotlib图形:

import altair as alt
from vega_datasets import data
import matplotlib.pyplot as plt

# 启用matplotlib渲染器
alt.renderers.enable('matplotlib')

# 你的图表代码...

chart.show()
# 或者直接调用plt.show()

这种方式会把Altair图表转换成Matplotlib的Axes对象,适合嵌入到Matplotlib的子图布局中,但会丢失Altair的交互式功能。


内容的提问来源于stack exchange,提问作者Shivansh Srivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:21:19