コード例 #1
0
ファイル: app.py プロジェクト: zuojilei/ECommerceCrawlers
def get_bar():
    poets = Poet.query.order_by(Poet.num.desc()).limit(10)
    attr_poet = []
    num_poet = []
    for poet in poets:
        attr_poet.append(poet.name)
        num_poet.append(poet.num)
    bar = Bar("作诗数前十名诗人")
    bar.add("", attr_poet, num_poet, is_label_show=True, center=[50,50])
    return bar
コード例 #2
0
def plot(t_list, sensor1_list, sensor2_list, title_str, htmlName):
    from pyecharts.charts.basic_charts.bar import Bar  #导入相应包
    from pyecharts import options as opts
    from pyecharts.options import DataZoomOpts

    bar = Bar()  #生成对象,title为柱状图标题
    #is_stack=True表示将数据堆叠,is_label_show=True表示显示对应数值
    bar.add_xaxis(t_list)
    bar.add_yaxis("sensor1触发次数", sensor1_list)
    bar.add_yaxis("sensor2触发次数", sensor2_list)
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title=title_str),
        datazoom_opts=[DataZoomOpts(is_show=True, type_="slider")])

    bar.render(htmlName)
コード例 #3
0
def plot_pages():
    """
    Pages可以将多张图表按顺序展示在一张网页中,适合制作图形化报表。
    Pages中的图表可以是Grid,Overlap或Timeline.
    使用Pages来绘制组合图
    子图是自己本身的宽高
    :return:html
    """
    # 1.首先绘制一个柱状图
    # 初始化数据来源
    x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋"]
    y1 = [5, 20, 36, 10, 75]
    y2 = [10, 25, 8, 60, 20]

    #  初始化柱状图
    bar = Bar(init_opts=opts.InitOpts(width='600px', height='400px'))

    # x轴数据
    bar.add_xaxis(xaxis_data=x)
    # y轴数据
    bar.add_yaxis(series_name="商家A", y_axis=y1)
    bar.add_yaxis(series_name="商家B", y_axis=y2)

    # 设置配置
    bar.set_global_opts(title_opts=opts.TitleOpts(title='柱状图:商家货物销量'))

    # 2.绘制一个折线图
    # 初始化数据来源
    x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋"]
    y1 = [5, 20, 36, 10, 75]
    y2 = [10, 25, 8, 60, 20]

    # 初始化折线图
    line = Line(init_opts=opts.InitOpts(width="500px", height="200px"))

    # x轴数据
    line.add_xaxis(xaxis_data=x)

    # y轴数据
    line.add_yaxis(series_name='商家A', y_axis=y1)
    line.add_yaxis(series_name='商家B', y_axis=y2)

    # 设置配置
    line.set_global_opts(title_opts=opts.TitleOpts(title='折线图:商家货物销量'))

    # 初始化pages
    pages = Page(page_title='多图', layout=opts.PageLayoutOpts())

    # 添加图形系列
    pages.add(bar, line, line)

    # 输出pages
    pages.render('组合图pages示范图.html')
コード例 #4
0
def plot_grid():
    """
    使用Grid来绘制组合图
    子图的宽高是自适应画板(Grid)的宽高
    子图的位置用grid_opts中pos选项来调节:
        当两个子图为pos_left与pos_right时,此时为左右排列
        当两个子图为pos_top与pos_bottom时,此时为上下排列
    :return: html
    """
    # 1.首先绘制一个柱状图
    # 初始化数据来源
    x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋"]
    y1 = [5, 20, 36, 10, 75]
    y2 = [10, 25, 8, 60, 20]

    #  初始化柱状图
    bar = Bar(init_opts=opts.InitOpts(width='200px', height='100px'))

    # x轴数据
    bar.add_xaxis(xaxis_data=x)
    # y轴数据
    bar.add_yaxis(series_name="商家A", y_axis=y1)
    bar.add_yaxis(series_name="商家B", y_axis=y2)

    # 设置配置
    bar.set_global_opts(title_opts=opts.TitleOpts(title='柱状图:商家货物销量'))

    # 2.绘制一个折线图
    # 初始化数据来源
    x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋"]
    y1 = [5, 20, 36, 10, 75]
    y2 = [10, 25, 8, 60, 20]

    # 初始化折线图
    line = Line(init_opts=opts.InitOpts(width="100px", height="100px"))

    # x轴数据
    line.add_xaxis(xaxis_data=x)

    # y轴数据
    line.add_yaxis(series_name='商家A', y_axis=y1)
    line.add_yaxis(series_name='商家B', y_axis=y2)

    # 设置配置
    line.set_global_opts(
        title_opts=opts.TitleOpts(title='折线图:商家货物销量', pos_top='50%'))

    # 初始化组合图:Grid
    grid = Grid(init_opts=opts.InitOpts(width='600px', height='400px'))
    # 利用grid_bottom,grid_top,grid_left,grid_right四个参数控制子图的相对位置
    grid.add(bar, grid_opts=opts.GridOpts(pos_right='60%'))
    grid.add(line, grid_opts=opts.GridOpts(pos_left='60%'))
    grid.render('组合图Grid示范图.html')
コード例 #5
0
def plot_timeline():
    """
    Timeline可以将多个图表制作成动画。
    :return:
    """
    # 初始化多组数据
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    year = 5
    start_year = 2018
    num = len(attr)
    # 初始化时间线图形
    timeline = Timeline(init_opts=opts.InitOpts(width='600px', height='400px'))

    # 时间轴添加配置项
    timeline.add_schema(is_auto_play=False,
                        is_loop_play=True,
                        is_timeline_show=True,
                        control_position='right',
                        itemstyle_opts=opts.ItemStyleOpts(color='blue',
                                                          opacity=0.8),
                        play_interval=1000)

    for i in range(5):
        year_sales1 = [randint(10, 100) for _ in range(num)]
        year_sales2 = [randint(200, 500) for _ in range(num)]
        # 初始化
        bar_temp = Bar(init_opts=opts.InitOpts())
        # 加载数据
        bar_temp.add_xaxis(xaxis_data=attr)
        bar_temp.add_yaxis(series_name=f'{start_year+i}年净销售额',
                           y_axis=year_sales1)
        bar_temp.add_yaxis(series_name=f'{start_year+i}年实际销售额',
                           y_axis=year_sales2)
        # bar配置项
        bar_temp.set_global_opts(title_opts=opts.TitleOpts(
            title=f'{start_year + i} 销售额情况'))

        # 时间轮播图添加图形
        timeline.add(bar_temp, f'{start_year + i}年营业额')

    # 输出时间线轮播图
    timeline.render('组合图时间线轮播图.html')
コード例 #6
0
def plot_bar():
    """
    绘制柱状图:
        Bar
    :return:
    """
    # 初始化数据来源
    x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋"]
    y1 = [5, 20, 36, 10, 75]
    y2 = [10, 25, 8, 60, 20]

    #  初始化柱状图
    bar = Bar(init_opts=opts.InitOpts(width='1000px', height='600px'))

    # x轴数据
    bar.add_xaxis(xaxis_data=x)
    # y轴数据
    bar.add_yaxis(series_name="商家A", y_axis=y1)
    bar.add_yaxis(series_name="商家B", y_axis=y2)

    # 导出绘图html文件,可直接用浏览器打开
    bar.render('柱状图示范.html')
コード例 #7
0
    df = df[df.price == '暂无']
    # # 去除重复行
    # df = df.drop_duplicates()
    print("have value row number is {0}".format(len(df.index)))

    ####################################################
    # 最贵的小区排名
    ####################################################
    df.sort_values("price", ascending=False, inplace=True)
    num = 5
    print(df.head(num))
    # city = df["city_ch"][0]
    city = 'Shanghai'
    xqs = df["xiaoqu"][0:num]
    prices = df["price"][0:num]
    bar = Bar("{0}小区均价".format(city))
    bar.add("小区均价前{0}名".format(num),
            xqs,
            prices,
            is_stack=True,
            is_label_show=True,
            xaxis_interval=0,
            xaxis_rotate=45)
    bar.render(path="xiaoqu.html")

    ####################################################
    # 区县均价排名
    ####################################################
    district_df = df.groupby('district').mean()
    district_df = district_df.round(0)
    district_df.sort_values("price", ascending=False, inplace=True)
コード例 #8
0
ファイル: Qp.py プロジェクト: Williesmith228/data_analysis
    }, {
        '>=85分,<90分': [85, 90]
    }, {
        '>=90分,<95分': [90, 95]
    }, {
        '>=95分,<100分': [95, 100]
    }]
    score_range = {
        k: sum(i[1] for i in score_counter
               if not isinstance(i[0], str) and i[0] < j[1] and i[0] >= j[0])
        for kv in step_range for k, j in kv.items()
    }
    page = Page()
    bar_company = (Bar(init_opts=opts.InitOpts(
        theme=ThemeType.LIGHT)).add_xaxis(list(cc.keys())).add_yaxis(
            "人数", list(cc.values())).set_global_opts(title_opts=opts.TitleOpts(
                title="紧缺人才名单公司分布柱状图",
                subtitle="company",
            )))
    page.add(bar_company)
    pie_company = (Pie().add("", comp_counter).set_colors(
        ["blue", "green", "yellow", "red", "pink", "orange",
         "purple"]).set_global_opts(
             title_opts=opts.TitleOpts(title="紧缺人才名单公司分布饼图", ),
             legend_opts=opts.LegendOpts(pos_top="bottom")).set_series_opts(
                 label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)")))
    page.add(pie_company)

    bar_area = (Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)).add_xaxis(
        list(dd.keys())).add_yaxis("人数", list(
            dd.values())).set_global_opts(title_opts=opts.TitleOpts(
                title="紧缺人才名单区域分布柱状图",