当前pyecharts版本为1.9.0
概述
render包结构
render包位于pyecharts包顶级目录中,用于渲染图表。render包结构如下:
├─render # 渲染设置包
│ │ display.py # 定义HTML、JavaScript显示类,用于支持在notebook中嵌入输出结果
│ │ engine.py # 定义渲染相关类、函数
│ │ snapshot.py # 定义渲染图片函数
│ │ __init__.py # 暴露渲染图片函数
│ │
│ ├─templates # 定义渲染模板
│ │ components.html
│ │ macro
│ │ nb_components.html
│ │ nb_jupyter_globe.html
│ │ nb_jupyter_lab.html
│ │ nb_jupyter_lab_tab.html
│ │ nb_jupyter_notebook.html
│ │ nb_jupyter_notebook_tab.html
│ │ nb_nteract.html
│ │ simple_chart.html
│ │ simple_globe.html
│ │ simple_page.html
│ │ simple_tab.html
templates目录
templates目录路径为pyecharts/render/templates,作用为存放渲染模板。
pyecharts使用jinja2库的模板引擎生成HTML。
templates目录中的文件主要有两类:
macro:模板宏定义。宏类似常规编程语言中的函数。它们用于把常用行为作为可重用的函数,取代手动重复的工作。宏还可以传递参数,因此可以实现pyecharts对象的渲染。模板文件:模板文件分为两大类,nb开头的html文件是针对notebook的模板,其余html文件是针对普通html文档的模板。
渲染模板实例:simple_chart.html
simple_chart.html是最基础的渲染模板,一般图表类实例的render()或render_embed()方法渲染的HTML文件就使用的该模板。
通过对比pyecharts/charts/base.py模块源码、simple_chart.html源码、macro源码与渲染输出后的HTML内容可验证渲染的结果。
pyecharts/charts/base.py模块源码
from ..render import engine
class Base(ChartMixin):
"""
`Base` is the root class for all graphical class, it provides
part of the initialization parameters and common methods
"""
def __init__(self, init_opts: Union[InitOpts, dict] = InitOpts()):
_opts = init_opts
if isinstance(init_opts, InitOpts):
_opts = init_opts.opts
def render(
self,
path: str = "render.html",
template_name: str = "simple_chart.html",
env: Optional[Environment] = None,
**kwargs,
) -> str:
self._prepare_render()
return engine.render(self, path, template_name, env, **kwargs)
def render_embed(
self,
template_name: str = "simple_chart.html",
env: Optional[Environment] = None,
**kwargs,
) -> str:
self._prepare_render()
return engine.render_embed(self, template_name, env, **kwargs)
simple_chart.html源码:

本文深入探讨了PyEcharts的渲染过程,包括render包的结构、模板引擎的使用以及渲染模板的实例。render包包含display、engine和snapshot等模块,用于图表的HTML和JavaScript显示。templates目录下存放了渲染模板,如simple_chart.html,通过jinja2宏定义处理图表依赖和内容。渲染模板如simple_chart.html将pyecharts对象转换为HTML和JavaScript代码,最终在浏览器中展示图表。
最低0.47元/天 解锁文章
1433

被折叠的 条评论
为什么被折叠?



