[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)