如何使用Python的Pyecharts导出可离线使用的HTML图表?
解决方案:导出Pyecharts离线可用文件
方法1:生成内置JS资源的离线HTML文件
Pyecharts默认依赖CDN加载ECharts的JS资源,要生成完全离线可用的HTML,只需在渲染时开启JS嵌入选项:
- 修改你的图表代码,在
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资源(避免重复嵌入增大文件体积),可以先下载离线资源,再指定本地资源路径:
- 下载ECharts离线资源到本地:
from pyecharts import offline # 资源默认下载到当前目录的`echarts`文件夹 offline.download()
- 指定本地资源路径后渲染:
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工具:
- 安装依赖:
pip install snapshot-selenium selenium
- 需额外下载对应浏览器的驱动(如ChromeDriver),并将其添加到系统PATH中。
- 修改代码导出图片:
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
相关产品推荐
相关产品推荐

