[pyecharts学习笔记]

学习了许多 pyecharts绘制的图形后,总想着,如果能将所有图片集中到一个页面就好了,这样就可以对不同的情况进行同时交互展示

pyecharts 中的 页面组件 Page 很好的解决的这个问题,能够将许多张图片,放在一起。

下面学习pyecharts作者给出的例子

(1)简单布局

# 导入要使用的模块from pyecharts import options as optsfrom pyecharts.charts import Bar, Grid, Line, Liquid, Page, Piefrom pyecharts.commons.utils import JsCodefrom pyecharts.components import Tablefrom pyecharts.faker import Fakerfrom pyecharts.globals import ThemeType# 将每个图 封装到 函数# 1.条形图def bar_datazoom_slider() -> Bar:    c = (                Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))        .add_xaxis(Faker.days_attrs)        .add_yaxis("商家A", Faker.days_values)        .set_global_opts(            title_opts=opts.TitleOpts(title="Bar-DataZoom(slider-水平)"),            datazoom_opts=[opts.DataZoomOpts()],        )    )    return c# 2.带标记点的折线图def line_markpoint() -> Line:    c = (        Line(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))                .add_xaxis(Faker.choose())        .add_yaxis(            "商家A",            Faker.values(),            markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]),        )        .add_yaxis(            "商家B",            Faker.values(),            markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]),        )        .set_global_opts(title_opts=opts.TitleOpts(title="Line-MarkPoint"))    )    return c# 3.玫瑰型饼图def pie_rosetype() -> Pie:    v = Faker.choose()    c = (        Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))                .add(            "",            [list(z) for z in zip(v, Faker.values())],            radius=["30%", "75%"],            center=["25%", "50%"],            rosetype="radius",            label_opts=opts.LabelOpts(is_show=False),        )                        .add(            "",            [list(z) for z in zip(v, Faker.values())],            radius=["30%", "75%"],            center=["75%", "50%"],            rosetype="area",        )        .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"))    )    return c# 表格def table_base() -> Table:    table = Table()    headers = ["City name", "Area", "Population", "Annual Rainfall"]    rows = [        ["Brisbane", 5905, 1857594, 1146.4],        ["Adelaide", 1295, 1158259, 600.5],        ["Darwin", 112, 120900, 1714.7],        ["Hobart", 1357, 205556, 619.5],        ["Sydney", 2058, 4336374, 1214.8],        ["Melbourne", 1566, 3806092, 646.9],        ["Perth", 5386, 1554769, 869.4],    ]    table.add(headers, rows).set_global_opts(        title_opts=opts.ComponentTitleOpts(title="Table")    )    return tabledef page_simple_layout():#    page = Page()   默认布局    page = Page(layout=Page.SimplePageLayout)    # 简单布局    # 将上面定义好的图添加到 page    page.add(        bar_datazoom_slider(),        line_markpoint(),        pie_rosetype(),        table_base(),    )    page.render("page_simple_layout.html")if __name__ == "__main__":    page_simple_layout()

(2)可拖动布局

注意:

可以将自己的布局保存为类型 txt 文件的 json 数据

改动位置

def page_simple_layout():    page = Page(layout=Page.DraggablePageLayout)      # 将上面定义好的图添加到 page    page.add(        bar_datazoom_slider(),        line_markpoint(),        pie_rosetype(),        table_base(),    )    page.render("page_simple_layout.html")
(0)

相关推荐