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

如何使用Python的Pyecharts导出可离线使用的HTML图表?

解决方案:导出Pyecharts离线可用文件

方法1:生成内置JS资源的离线HTML文件

Pyecharts默认依赖CDN加载ECharts的JS资源,要生成完全离线可用的HTML,只需在渲染时开启JS嵌入选项:

  1. 修改你的图表代码,在render()方法中添加is_include_javascript=True参数:
from pyecharts.charts import Bar
from pyecharts import options as opts

def create_bar_chart():
    x_data = ["A", "B", "C", "D", "E"]
    y_data = [10, 20, 30, 40, 50]
    bar = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis("Series A", y_data)
        .set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart Example"))
    )

    # 导出包含完整JS资源的离线HTML
    bar.render("bar_chart_offline.html", is_include_javascript=True)
    return bar

create_bar_chart()
  • 该参数会将ECharts核心JS代码直接嵌入到HTML文件中,生成的文件无需联网即可打开。

方法2:使用本地资源目录渲染

如果你希望复用本地JS资源(避免重复嵌入增大文件体积),可以先下载离线资源,再指定本地资源路径:

  1. 下载ECharts离线资源到本地:
from pyecharts import offline
# 资源默认下载到当前目录的`echarts`文件夹
offline.download()
  1. 指定本地资源路径后渲染:
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import CurrentConfig

# 设置本地资源路径
CurrentConfig.ONLINE_HOST = "./echarts/"

def create_bar_chart():
    x_data = ["A", "B", "C", "D", "E"]
    y_data = [10, 20, 30, 40, 50]
    bar = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis("Series A", y_data)
        .set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart Example"))
    )

    bar.render("bar_chart_offline.html")
    return bar

create_bar_chart()
  • 确保echarts文件夹和导出的HTML文件在同一目录下,即可离线访问。

方法3:导出为图片格式(完全离线)

如果需要图片格式的离线文件,可使用snapshot-selenium工具:

  1. 安装依赖:
pip install snapshot-selenium selenium
  • 需额外下载对应浏览器的驱动(如ChromeDriver),并将其添加到系统PATH中。
  1. 修改代码导出图片:
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot

def create_bar_chart():
    x_data = ["A", "B", "C", "D", "E"]
    y_data = [10, 20, 30, 40, 50]
    bar = (
        Bar()
        .add_xaxis(x_data)
        .add_yaxis("Series A", y_data)
        .set_global_opts(title_opts=opts.TitleOpts(title="Bar Chart Example"))
    )

    # 导出为PNG图片
    make_snapshot(snapshot, bar.render(), "bar_chart_offline.png")
    return bar

create_bar_chart()

内容的提问来源于stack exchange,提问作者Don Ton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:07:03