class pyecharts.charts.Page

    1. class Page(
    2. # HTML 标题
    3. page_title: str = "Awesome-pyecharts",
    4. # 远程 HOST,默认为 "https://assets.pyecharts.org/assets/"
    5. js_host: str = "",
    6. # 每个图例之间的间隔
    7. interval: int = 1,
    8. # 布局配置项,参考 `PageLayoutOpts`
    9. layout: Union[PageLayoutOpts, dict] = PageLayoutOpts()
    10. )

    func pyecharts.charts.Page.add

    1. def add(*charts) # charts: 任意图表实例

    class pyecharts.options.PageLayoutOpts

    1. class PageLayoutOpts(
    2. # 配置均为原生 CSS 样式
    3. justify_content: Optional[str] = None,
    4. margin: Optional[str] = None,
    5. display: Optional[str] = None,
    6. flex_wrap: Optional[str] = None,
    7. )

    func pyecharts.charts.Page.save_resize_html
    用于 DraggablePageLayout 布局重新渲染图表

    1. def save_resize_html(
    2. # Page 第一次渲染后的 html 文件
    3. source: str = "render.html",
    4. *,
    5. # 布局配置文件
    6. cfg_file: types.Optional[str] = None,
    7. # 布局配置 dict
    8. cfg_dict: types.Optional[list] = None,
    9. # 重新生成的 .html 存放路径
    10. dest: str = "resize_render.html",
    11. ) -> str

    Page 内置了以下布局

    • SimplePageLayout
    • DraggablePageLayout

    默认布局

    1. page = Page()
    2. page.add(bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis())
    3. page.render()

    SimplePageLayout 布局

    1. page = Page(layout=Page.SimplePageLayout)
    2. # 需要自行调整每个 chart 的 height/width,显示效果在不同的显示器上可能不同
    3. page.add(bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis())
    4. page.render()

    image.png
    DraggablePageLayout 布局

    1. page = Page(layout=Page.DraggablePageLayout)
    2. page.add(bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis())
    3. page.render()

    Note: DraggablePageLayout 需要 pyecharts 版本 v.1.4.0+

    1. # DraggablePageLayout 利用 Jquery 以及 Echarts 本身的 resize 功能,实现了可拖拽布局。使用步骤如下
    2. # 1.指定 Page 布局
    3. page = Page(layout=Page.DraggablePageLayout)
    4. # 正常 render 图表
    5. page.add(bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis())
    6. page.render()
    7. # 使用浏览器打开渲染后的 .html 文件,默认为 render.html。拖拉/调整图表位置和大小,当调整到一个适合
    8. # 的布局时,点击左上方的 `Save Config` 按钮,下载 chart_config.json 配置文件,假设存放位置为
    9. # ~/chart_config.json。再次渲染图表并指定其布局配置
    10. # Warning: 请注释掉上面的的所有渲染代码,就是以下三行。因为 html 已经生成,并不需要再重新渲染一遍。
    11. # page = Page(layout=Page.DraggablePageLayout)
    12. # page.add(bar_datazoom_slider(), line_markpoint(), pie_rosetype(), grid_mutil_yaxis())
    13. # page.render()
    14. # render.html:第一步生成的原 html 文件
    15. # chart_config.json:第二步下载的配置文件
    16. # my_new_charts.html:新 html 文件路径
    17. Page.save_resize_html("render.html", cfg_file="~/chart_config.json", dest="my_new_charts.html")
    18. # 或者可以使用 json 数据
    19. # cfg_dict 为 json 文件里面的内容
    20. Page.save_resize_html("render.html", cfg_dict=cfg_dict, dest="my_new_charts.html")
    21. # Question:能否复用渲染模板?
    22. # Answer: 可以的,渲染配置 json 数据中是以 chart_id 来作为一个图形的唯一标识符的,所以只需要在
    23. # 第一次渲染的时候指定 chart_id 就可以啦。
    24. # example:
    25. # bar = bar_datazoom_slider()
    26. # bar.chart_id = "chenjiandongx_is_an_awesome_boy"
    27. # line = line_markpoint()
    28. # line.chart_id = "chenjiandongx_is_an_amazing_boy"
    29. # pie = pie_rosetype()
    30. # pie.chart_id = "chenjiandongx_is_an_adorable_boy"
    31. # 然后只要以后都按这个 chart_id 来渲染图表的时候,你的布局配置就可以复用啦。
    32. # cat chart_config.json,会发现 chart_id 是固定的啦。
    33. page.add(bar_datazoom_slider(), line_markpoint(), pie_rosetype()))

    _