• pyecharts组件实现数据的可视化分析


    pyecharts组件技术以各类图表形式(柱状图、折线图、饼图)实现数据可视化模块的展示。pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts Python 的对接。Echarts 是百度开源的一个数据可视化JS 库。

    部分代码:

     

    import random
    from pyecharts.charts.basic_charts import bar,line
    from pyecharts.charts import Page,WordCloud
    from pyecharts.components import Table
    from pyecharts.options import ComponentTitleOpts
    from pyecharts.charts import Bar,Line,Grid,Pie,Scatter,Graph,Gauge,Funnel,Geo
    from pyecharts import options as opts
    from pyecharts.charts import Kline
    from pyecharts import options as opts

    #柱状图
    bar1 = (
        Bar(init_opts=opts.InitOpts(
            width='1300px',
            height='600px',

            page_title='今日大盘指数情况'

        ))
        #.page_title("今日大盘指数情况")
        .add_xaxis(["上证指数","A股指数","B股指数","综合指数","基金指数","国债指数","沪深300","中证500","创业板指","新指数","深证综指"])
        .add_yaxis("今日开盘",[3332.1826,3492.714,237.8839,2941.4322,7245.1735,182.5934,4735.8985,6635.3429,9180.766,2831.3509,10395.664,2277.492],markline_opts=["average"],markpoint_opts=["max","min"])
        .add_yaxis("今日收盘",[3367.9658,3530.1766,242.104,2958.9515,7315.6709,182.6703,4771.3694,6739.8085,9295.8519,2868.882,10570.496,2315.441],markline_opts=["average"],markpoint_opts=["max","min"])

        .set_global_opts(title_opts=opts.TitleOpts(title="今日大盘指数情况"),toolbox_opts=opts.ToolboxOpts(),legend_opts=opts.LegendOpts(is_show=True))#toolbox显示工具栏
    )

    #XY轴翻转后柱状图
    # 基金指数数据来源于爬取天天基金网基金数据保存得到的funddata.csv文件
    bar2 = (
        Bar(init_opts=opts.InitOpts(
            width='1300px',
            height='800px',
            page_title='工银各基金指数净值情况'
        ))

        .add_xaxis(["工银大盘蓝筹","工银全球精选","工银新蓝筹股","工银成长收益","工银消费股票","工银新生代消费","工银绝对收益","工银新得益混合","工银农业产业","工银创新动力","工银香港中小盘","工银高端制造"])
        .add_yaxis("单位净值",[1.587,2.761,2.125,1.321,1.3696,2.0351,1.233,1.383,1.167,0.749,1.627,1.1271],markline_opts=["average"],markpoint_opts=["max","min"])
        .add_yaxis("累计净值",[2.356,2.761,2.125,1.763,1.3696,2.0351,1.233,1.383,1.167,0.749,1.627,1.457],markline_opts=["average"],markpoint_opts=["max","min"])
        .set_series_opts(label_opts=opts.LabelOpts(is_show=True),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值"),]))
        .reversal_axis()#翻转x-y
        .set_global_opts(title_opts=opts.TitleOpts(title="工银各基金指数单位/累计净值情况"),toolbox_opts=opts.ToolboxOpts(),legend_opts=opts.LegendOpts(is_show=True))
    )

    #折线图
    #各大盘指数k线数据趋势变动情况
    y_data1=[3380.76,3392.7,3386.46,3334.33,3362.738,3302.502,3317.255]
    y_data2=[13972.3,13972.3,13863.13,13661.84,13857.39,13537.116,13566.848]
    y_data3=[4779.24,4791.86,4762.76,4691.16,4756.406,4671.949,4686.796]
    y_data4=[3295.43,3311.36,3292.2,3243.65,3285.416,3240.939,3265.56]
    y_data5=[9271.63,9271.63,9222.79,9102.69,9216.208,8995.811,9035.37]
    y_data6=[2868.82,2868.82,2814.37,2774.69,2834.346,2760.888,2762.984]

    line1 = (
        Line(
    init_opts=opts.InitOpts(
            width='1300px',
            height='800px',
            page_title='今日各大盘指数k线数据趋势变动情况'
        )
        )
        .add_xaxis(["开盘价","最高价","收盘价","最低价","5日均价","10日均价","20日均价"])
        .add_yaxis("上证综合指数",y_data1)
        .add_yaxis("深证成份股指",y_data2)
        .add_yaxis("沪深300指数",y_data3)
        .add_yaxis("上证50指数",y_data4)
        .add_yaxis("中小板指数",y_data5)
        .add_yaxis("创业板指数",y_data6)
        .set_global_opts(title_opts=opts.TitleOpts(title="今日各大盘指数k线数据趋势变动情况"),toolbox_opts=opts.ToolboxOpts(),legend_opts=opts.LegendOpts(is_show=True))
        #.render("dataline.html")
    )

    #各行基金成立以来指数增长率趋势变动情况
    y_data1=[1.28,2.79,20.14,35.64,31.81,47.48,51.27,63.14,33.32,197.94]
    y_data2=[1.14,2.68,4.58,15.77,3.8,13.76,25.5,47.65,7.06,176.1]
    y_data3=[2.6,2.55,26.06,50.74,55.8,121.75,112.55,76.24,69.02,143.35]
    y_data4=[2.32,2.45,18.58,35.38,33.72,74.76,71.73,84.49,40.26,86.96]
    y_data5=[2.24,2.21,20.1,34.26,28.04,51.95,61.01,80.33,39.57,166.95]

    line2 = (
        Line(
    init_opts=opts.InitOpts(
            width='1300px',
            height='800px',
            page_title='各行基金成立以来指数增长率趋势变动情况'
        )
        )
        .add_xaxis(["日增长率","1","1","3","6","1","2","3","今年来","成立来"])
        .add_yaxis("工银大盘蓝筹",y_data1)
        .add_yaxis("工银全球精选",y_data2)
        .add_yaxis("农银研究精选",y_data3)
        .add_yaxis("中银品质生活",y_data4)
        .add_yaxis("交银先锋混合",y_data5)
        #.add_yaxis("广发优企精选",y_data6)
        .set_global_opts(title_opts=opts.TitleOpts(title="各行基金成立以来指数增长率趋势变动情况"),toolbox_opts=opts.ToolboxOpts(),legend_opts=opts.LegendOpts(is_show=True))
        #.render("dataline.html")
    )

    #饼图
    #各大商业银行债券市场占比情况
    x_data = ["工行","建行","中行","农行","交行","其他银行"]
    y_data = [11.09,9.187,10.355,8.757,7.29,53.33]
    pie1 = (
        Pie(init_opts=opts.InitOpts(
            width='1300px',
            height='600px')
        )
        .add(
            series_name="指数占比",
            data_pair=[list(z) for z in zip(x_data,y_data)],
            radius=["50%","70%"],
            label_opts=opts.LabelOpts(is_show=False,position="center")
        )
        .set_global_opts(legend_opts=opts.LegendOpts(pos_left="legft",orient="vertical"))
        .set_series_opts(
            tooltip_opts=opts.TooltipOpts(
                trigger="item",formatter="{a} <br />{b}: {c} ({d}%)"
            ),
        )
        .set_global_opts(title_opts=opts.TitleOpts(title="年内各大商业银行债券市场份额占比情况"),toolbox_opts=opts.ToolboxOpts(),legend_opts=opts.LegendOpts(is_show=True))
    )

    page = Page(layout=Page.DraggablePageLayout)
    page.add(bar1)
    page.add(bar2)
    page.add(line1)
    page.add(line2)
    page.add(pie1)
    page.render("./data_digram.html")

     

    实现效果:

     

     

  • 相关阅读:
    python接口测试(二)——配置文件的使用
    python接口测试(一)——http请求及token获取
    jmeter接口测试--响应结果Unicode转码成中文
    jmeter接口测试--获取token
    jmeter接口测试--参数化
    Sysbench安装步骤及详情
    云数据库安装及使用
    npm start 和 npm run start的关系
    使用JS控制伪元素的几种方法
    html5新属性
  • 原文地址:https://www.cnblogs.com/cqj0818/p/13518640.html
Copyright © 2020-2023  润新知