Example #1
0
    def plot(self):
        self.chart = Scatter(init_opts=opts.InitOpts(
            page_title=self.title, width='600px', height='500px'))

        # load data
        self.chart.add_xaxis(self.data[0][0])
        self.chart.add_yaxis(self.yaxis_name, self.data[0][1])

        # set options
        self.chart.set_global_opts(
            title_opts=opts.TitleOpts(title=self.title),
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            datazoom_opts=opts.DataZoomOpts(is_show=True,
                                            type_='slider',
                                            range_start=0,
                                            range_end=100),
            xaxis_opts=opts.AxisOpts(
                name=self.xaxis_name,
                type_='time',
                name_location='end',
                name_gap=15,
                splitline_opts=opts.SplitLineOpts(is_show=True),
                min_=self.min_x,
                max_=self.max_x),
            yaxis_opts=opts.AxisOpts(
                name=self.yaxis_name,
                name_location='center',
                name_gap=15,
                splitline_opts=opts.SplitLineOpts(is_show=True),
                max_=self.max_y),
            visualmap_opts=opts.VisualMapOpts(max_=self.max_y))
        self.chart.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

        return self
Example #2
0
def scatter(df) -> Scatter:
    if df.empty is False:
        scatter = (
            Scatter()
                .add_xaxis(xaxis_data=df['当前月处方量'])
                .add_yaxis(
                series_name=df.index.tolist(),
                y_axis=df['月累计相关病人数'],
                symbol_size=10,
                label_opts=opts.LabelOpts(is_show=False),
            )

        )
        scatter.set_series_opts()
        scatter.set_global_opts(
            xaxis_opts=opts.AxisOpts(
                type_="value", splitline_opts=opts.SplitLineOpts(is_show=True)
            ),
            yaxis_opts=opts.AxisOpts(
                type_="value",
                axistick_opts=opts.AxisTickOpts(is_show=True),
                splitline_opts=opts.SplitLineOpts(is_show=True),
            ),
            tooltip_opts=opts.TooltipOpts(is_show=True),
            title_opts=opts.TitleOpts(title="Scatter-基本示例")
        )
    else:
        scatter = (Scatter())
    return scatter
Example #3
0
def bar_base(x, y, xline, yline):

    scatter = Scatter().add_xaxis(x).add_yaxis(
        '真实值', y).set_global_opts(title_opts=opts.TitleOpts(title="相关线"))

    xline = xline.reshape(-1)
    line = Line().add_xaxis(xaxis_data=xline.tolist()).add_yaxis(
        series_name="拟合线", y_axis=yline.tolist())

    scatter.overlap(line)
    return scatter
Example #4
0
 def scatter_render_air(self):
     c = Scatter()
     c.add_xaxis(self.x_value)
     c.add_yaxis(
         series_name=self.y_name,
         y_axis=self.inner_data_pair,
         label_opts=opts.LabelOpts(
             is_show=self.is_show,
             formatter=JsCode(
                 "function(params){return params.value[2] +' : '+ params.value[1];}"
             )))
     c.set_global_opts(
         title_opts=opts.TitleOpts(title=self.title,
                                   subtitle=self.subtitle),
         # tooltip_opts=opts.TooltipOpts(
         #     formatter=JsCode(
         #         "function (params) {return params.name + ' : ' + params.value[2];}"
         #     )
         # ),
         visualmap_opts=opts.VisualMapOpts(type_="color",
                                           max_=150,
                                           min_=20,
                                           dimension=1),
         legend_opts=opts.LegendOpts(pos_left=self.pos_left,
                                     legend_icon=self.legend_icon))
     return c
Example #5
0
def scatter():
    x_data = list(score['人均价格'])
    y_data = list(score['综合评分'])

    c = (Scatter(init_opts=opts.InitOpts(
        width="800px", height="500px", theme=ThemeType.PURPLE_PASSION)).
         add_xaxis(xaxis_data=x_data).add_yaxis(
             series_name="",
             y_axis=y_data,
             symbol_size=20,
             label_opts=opts.LabelOpts(is_show=False),
         ).set_series_opts().set_global_opts(
             xaxis_opts=opts.AxisOpts(
                 type_="value",
                 splitline_opts=opts.SplitLineOpts(is_show=True),
                 name='人均价格'),
             yaxis_opts=opts.AxisOpts(
                 type_="value",
                 axistick_opts=opts.AxisTickOpts(is_show=True),
                 splitline_opts=opts.SplitLineOpts(is_show=True),
                 name='评分'),
             tooltip_opts=opts.TooltipOpts(is_show=False),
         ))
    c.render('人均消费与综合评分散点.html')
    return c
def scatter_value_xaxis() -> Scatter:
    c = (Scatter().add_xaxis(Faker.values()).add_yaxis(
        "商家A", Faker.values()).set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-X 数值轴"),
            xaxis_opts=opts.AxisOpts(type_="value"),
            tooltip_opts=opts.TooltipOpts(formatter="{c}")))
    return c
Example #7
0
def test_bar_base():
    c = (Scatter().add_xaxis(["A", "B",
                              "C"]).add_yaxis("series0", [1, 2, 4]).add_yaxis(
                                  "series1", [2, 3, 6]))
    eq_(c.theme, "white")
    eq_(c.renderer, "canvas")
    c.render()
def line_base() -> Scatter:
    a = (Line().add_xaxis([
        "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008",
        "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017",
        "2018"
    ]).add_yaxis(
        "Adults_ages_15_newly_infected_with_HIV",
        Adults_ages_15_newly_infected_with_HIV).add_yaxis(
            "Children_ages_0_14_newly_infected_with_HIV",
            Children_ages_0_14_newly_infected_with_HIV).set_global_opts(
                title_opts=opts.TitleOpts(title="HIV新增感染人数")))
    c = (Scatter().add_xaxis([
        "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008",
        "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017",
        "2018"
    ]).add_yaxis("Children_0_14_living_with_HIV",
                 Children_0_14_living_with_HIV).add_yaxis(
                     "Antiretroviral_therapy_coverage",
                     Antiretroviral_therapy_coverage).set_global_opts(
                         title_opts=opts.TitleOpts(title=""),
                         visualmap_opts=opts.VisualMapOpts(type_="size",
                                                           max_=90,
                                                           min_=2),
                     ))
    return render_template(
        "show_pyecharts.html",
        bar_data=a.dump_options(),
        bar_data2=c.dump_options(),
        desc1=
        '小结:2000年-2018年,0-14岁群体的艾滋病人数总体呈减少趋势,2000年-2018年,抗逆转录病毒治疗覆盖率正逐年提高。,因此,笔者初步判断,抗病毒治疗对治疗艾滋病具有极大的作用',
        desc2=
        '小结:从图表中可以看出,在2000年到2018年间,0-14岁的群体中,新增感染HIV的人数是在逐年减少的, 在2000年到2018年间,15岁以上的群体中,新增感染HIV的人数也是在逐年减少的'
    )
 def scatter_render(self, dic, htmlname):
     logger.info(dic)
     df = pd.DataFrame(dic)
     df.sort_values("文物编号", inplace=True, ascending=True)  # 按年龄对数据做升序排序
     c = (
         Scatter().add_xaxis(df.文物编号.values.tolist()).add_yaxis(
             "识别准确率",
             df[[
                 "准确率",
                 "文物名称",
             ]].values.tolist(),  # 传入信用分与姓名组合,方便js回调函数显示标签
             label_opts=opts.LabelOpts(formatter=JsCode(
                 "function(params){return params.value[2];}"  # 通过定义JavaScript回调函数自定义标签
             ))).set_global_opts(
                 title_opts=opts.TitleOpts(title="识别准确率分布图"),
                 xaxis_opts=opts.AxisOpts(
                     name='文物编号',
                     type_="value",  # x轴数据类型是连续型的
                     min_=0  # x轴范围最小为20
                 ),
                 yaxis_opts=opts.AxisOpts(
                     name='准确率值',
                     min_=0  # y轴范围最小为700
                 )))
     # xaxis_opts = opts.AxisOpts(name='AC(刷题数)', type_='value', min_=20),  # x轴从20开始,原点不为0
     # yaxis_opts = opts.AxisOpts(name='ACB(能力值)', min_=100),  # y轴起始点的值
     c.render('./static/html/%s' % htmlname)
     return htmlname
Example #10
0
def scatter_base(value, label, title, subtitle):
    c = (Scatter()
         .add_xaxis(list(range(len(value.numpy().reshape(-1)))))
         .add_yaxis(label, value.numpy().reshape(-1).tolist(), symbol_size=2,)
         .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
         .set_global_opts(title_opts=opts.TitleOpts(title=title, subtitle=subtitle)))
    return c
Example #11
0
    def pyechart_Scatter_plot(self, filedata, para):
        from pyecharts.charts import Scatter
        file_name = '散点图.html'
        path_plotly = self.path_dir_plotly_html + os.sep + file_name  # 文件路径,前面是文件夹后面是文件名
        costumeTheme = self.themedict[para['theme']]
        # -----------------------------------------------------------------------

        Scatter = (Scatter(init_opts=opts.InitOpts(
            theme=costumeTheme, width=para['width'], height=para['height'])))
        chart = Scatter

        df = pd.read_excel(filedata, sheet_name='Sheet1')

        columns = df.columns.values.tolist()
        xlabel = columns[0]
        xdata = df[xlabel].values.tolist()

        chart.add_xaxis(xaxis_data=xdata)
        for i in range(1, len(columns)):
            ylabel = columns[i]
            ydata = df[ylabel].values.tolist()
            chart.add_yaxis(series_name=ylabel, y_axis=ydata)
        if para['x2y']:
            chart.reversal_axis()

        self.Common_code(chart, path_plotly, para)

        print('成功绘制散点图')
        return path_plotly  # 返回该HTML文件路径
def grid_horizontal():
    scatter = (
        Scatter()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            title_opts=opts.TitleOpts(title="Grid-Scatter"),
            legend_opts=opts.LegendOpts(pos_left="20%"),
        )
    )
    line = (
        Line()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            title_opts=opts.TitleOpts(title="Grid-Line", pos_right="5%"),
            legend_opts=opts.LegendOpts(pos_right="20%"),
        )
    )
    grid = (
        Grid()
        .add(scatter, grid_opts=opts.GridOpts(pos_left="55%"))
        .add(line, grid_opts=opts.GridOpts(pos_right="55%")))
    return grid
Example #13
0
def score_vs_comment_num(movies):
    scores = [m.score for m in movies[:10]]
    comment_nums = [m.comment_num for m in movies[:10]]
    c = (Scatter().add_xaxis(scores).add_yaxis(
        "comment_nums", comment_nums).set_global_opts(
            title_opts=options.TitleOpts(title="Score VS Comment num")))
    c.render('charts/scatter.html')
Example #14
0
def dong_scatter(data, info='', path0=''):
    from pyecharts import options as opts
    from pyecharts.commons.utils import JsCode
    from pyecharts.charts import Scatter, Timeline
    # endlist = ['canshu', 'celue_name', '预测_s_Time', '未来end_3', '最终预测值1', 'hg最终预测值1']
    data['aim'] = data['canshu'] + data['celue_name']
    data.rename(columns={
        'hg最终预测值1': '预测值',
        '未来end_3': '未来=月终收益',
        '预测_s_Time': 's_Time'
    },
                inplace=True)

    print(data.columns)

    print(data.tail())
    title = '动态图'

    df = data
    # data['预测值'] = data['预测值'].apply(lambda x: int(x))
    min_pre = min(data['预测值'].values.tolist())
    max_pre = max(data['预测值'].values.tolist())
    # df['未来=月终收益']=df['未来=月终收益'].apply(lambda x: int(x))
    # df['预测值']=df['预测值'].apply(lambda x: int(x))

    df['s_Time'] = pd.to_datetime(
        df['s_Time'])  #.apply(lambda x:x.strftime(format="%Y-%m-%d"))
    df.sort_values(by=['s_Time'], ascending=True, inplace=True)
    tl = Timeline()
    timelist = list(set(df['s_Time'].tolist()))
    print(list(set(df['s_Time'].tolist())))
    sorted(timelist)
    # df_date = [time.strftime('%Y-%m-%d',time.localtime(i/1000000000) ) for i in timelist]
    # print(df_date)

    for k, i in enumerate(sorted(timelist)):
        # print(k,i)
        xdata = df.loc[df['s_Time'] == i, '预测值'].values.tolist()
        ydata = df.loc[df['s_Time'] == i, ['未来=月终收益', '预测值']].values.tolist()
        # print(ydata)
        Scatter0 = (Scatter().add_xaxis(xdata).add_yaxis(
            '未来=月终收益', ydata, label_opts=opts.LabelOpts(is_show=False)
        ).set_series_opts().set_global_opts(
            xaxis_opts=opts.AxisOpts(
                name='预测值:',
                type_="value",
                axistick_opts=opts.AxisTickOpts(is_show=True)),
            yaxis_opts=opts.AxisOpts(
                name='真实值:',
                type_="value",
                axistick_opts=opts.AxisTickOpts(is_show=True)),
            title_opts=opts.TitleOpts(title=f"{title}==:{i}月份的数据"),
            tooltip_opts=opts.TooltipOpts(formatter=JsCode(
                "function (params) { return '真实:'+params.value[1] +' == 预测:'+ params.value[2];}"
            )),
            visualmap_opts=opts.VisualMapOpts(min_=min_pre, max_=max_pre),
        ))
        tl.add(Scatter0, "{}月".format(i))
    tl.render(path0 + f"{info}.html")
    print(path0 + f"{info}.html")
def scatter_muti_diemnsion_data():
    c = (
        Scatter()
        .add_xaxis(Faker.choose())
        .add_yaxis(
            "商家A",
            [list(z) for z in zip(Faker.values(), Faker.choose())],
            label_opts=opts.LabelOpts(
                formatter=JsCode(
                    "function (params) {return params.value[1] +' : '+ params.value[2];}"
                )
            ),
        )
        .set_global_opts(
            toolbox_opts=opts.ToolboxOpts(is_show=True),
            tooltip_opts=opts.TooltipOpts(
                formatter=JsCode(
                    "function (params) {return params.name +' : ' +params.value[2];}"
                )
            ),
            visualmap_opts=opts.VisualMapOpts(
                type_="color", max_=150, min_=20, dimension=1
            ),
        )
    )
    return c
Example #16
0
def scatter_visualmap_color() -> Scatter:
    c = (Scatter().add_xaxis(Faker.choose()).add_yaxis(
        "商家A", Faker.values()).set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-VisualMap(Color)"),
            visualmap_opts=opts.VisualMapOpts(max_=150),
        ))
    return c
Example #17
0
def scatter_debug_diff() -> Scatter:
    f = open('case_data.json', encoding='utf-8')
    res = f.read()
    data = json.loads(res)

    xy_data = []
    tmp = []
    x_data = []
    y_data = []
    # x轴为难度,y轴为debug时间
    for k in data.keys():
        if data[k]["case_type"] == "字符串":
            tmp = [data[k]["final_score"], data[k]["average_interval(min)"]]
            xy_data.append(tmp)
    xy_data = sorted(xy_data)
    for tmp in xy_data:
        x_data.append(tmp[0])
        y_data.append(tmp[1])
        # y_data.append(round(tmp[1]/10,2))
    scatter3 = (
        Scatter()
            .add_xaxis(x_data)
            .add_yaxis("debug-time(min)", y_data)
            .set_global_opts(
            title_opts=opts.TitleOpts(title='scatter debug-diff'),
            visualmap_opts=opts.VisualMapOpts(max_=600)
        )
    )
    return scatter3
Example #18
0
def draw_uniform_points():
    x, y = [i for i in range(100)], [round(uniform(0, 10), 2)
                                     for _ in range(100)]
    print(y)
    c = (Scatter()
         .add_xaxis(x)
         .add_yaxis('y', y))
    c.render()
Example #19
0
def scatter_base() -> Scatter:
    c = (
        Scatter()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())
        .set_global_opts(title_opts=opts.TitleOpts(title="Scatter-基本示例"))
    )
    return c
Example #20
0
def scatter_visualmap_size() -> Scatter:
    c = (Scatter().add_xaxis(Faker.choose()).add_yaxis(
        "商家A",
        Faker.values()).add_yaxis("商家B", Faker.values()).set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),
            visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),
        ))
    return c
Example #21
0
def test_scatter_base(fake_writer):
    c = (Scatter().add_xaxis(["A", "B",
                              "C"]).add_yaxis("series0", [1, 2, 4]).add_yaxis(
                                  "series1", [2, 3, 6]))
    c.render()
    _, content = fake_writer.call_args[0]
    assert_equal(c.theme, "white")
    assert_equal(c.renderer, "canvas")
Example #22
0
 def scatter_spliteline(self, key, value, city, title) -> Scatter:
     c = (Scatter().add_xaxis(key).add_yaxis(city, value).set_global_opts(
         title_opts=opts.TitleOpts(title=title),
         xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
             is_show=True)),
         yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
             is_show=True)),
     ))
     return c
Example #23
0
def scatter_rating_likes() -> Scatter:
    c = (Scatter().add_xaxis(range(1, 6)).add_yaxis(
        "点赞数", likes_new).set_global_opts(
            title_opts=opts.TitleOpts(title="评分-点赞图"),
            visualmap_opts=opts.VisualMapOpts(type_="size",
                                              max_=100000,
                                              min_=20000),
        ))
    return c
Example #24
0
def pycharts_visit():
    c = (
        Scatter()
            .add_yaxis("负面情绪")
            .add_xaxis("正面情绪")
            .render("散点图.html")
            .set_global_opts(title_opts=opts.TitleOpts(title="Scatter-基本示例"))
    )
    return c
Example #25
0
def scatter_spliteline() -> Scatter:
    c = (Scatter().add_xaxis(Faker.choose()).add_yaxis(
        "商家A", Faker.values()).set_global_opts(
            title_opts=opts.TitleOpts(title="Scatter-显示分割线"),
            xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
                is_show=True)),
            yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(
                is_show=True)),
        ))
    return c
Example #26
0
def scatter_base(choose, values, country) -> Scatter:
    c = (
        Scatter().add_xaxis(choose).add_yaxis(
            "%s历年GDP" % country, values).set_global_opts(
                title_opts=opts.TitleOpts(title=""),
                # datazoom_opts=opts.DataZoomOpts(),
                yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(
                    formatter="{value} /万亿"))).set_series_opts(
                        label_opts=opts.LabelOpts(is_show=False)))
    return c
Example #27
0
def test_bar_base():
    c = (
        Scatter()
        .add_xaxis(["A", "B", "C"])
        .add_yaxis("series0", [1, 2, 4])
        .add_yaxis("series1", [2, 3, 6])
    )
    assert c.theme == "white"
    assert c.renderer == "canvas"
    c.render("render.html")
Example #28
0
def overlap_line_scatter() -> Line:
    x = Faker.choose()
    line = (Line().add_xaxis(x).add_yaxis("商家A", Faker.values()).add_yaxis(
        "商家B", Faker.values()).set_global_opts(title_opts=opts.TitleOpts(
            title="Overlap-line+scatter")))
    scatter = (Scatter().add_xaxis(x).add_yaxis("商家A",
                                                Faker.values()).add_yaxis(
                                                    "商家B", Faker.values()))
    line.overlap(scatter)
    return line
Example #29
0
def draw_factor_eval(df: pd.DataFrame):
    cols = df.columns.tolist()
    cols.remove('return_close')
    charts = []
    for i in range(len(cols)):
        dataset_ = [
            list(z)
            for z in zip(df[cols[i]].tolist(), df[cols[i]].shift(-1).tolist())
        ]
        chart = (Scatter().add_dataset(
            dimensions=["factor", "next_factor"],
            source=dataset_,
        ).add_yaxis(
            series_name=cols[i],
            y_axis=[],
            symbol_size=2.5,
            xaxis_index=0,
            yaxis_index=0,
            encode={
                "x": "factor",
                "y": "next_factor",
                "tooltip": [0, 1, 2, 3, 4]
            },
            label_opts=opts.LabelOpts(is_show=False),
        ).set_global_opts(xaxis_opts=opts.AxisOpts(
            type_="value",
            grid_index=0,
            name="factor",
            axislabel_opts=opts.LabelOpts(rotate=50, interval=0),
            is_scale=True,
        ),
                          yaxis_opts=opts.AxisOpts(type_="value",
                                                   grid_index=0,
                                                   name="next_factor",
                                                   is_scale=True),
                          title_opts=opts.TitleOpts(title="Factor Eval"),
                          datazoom_opts=[
                              opts.DataZoomOpts(range_start=95, range_end=100),
                              opts.DataZoomOpts(is_show=False,
                                                type_='inside',
                                                range_start=95,
                                                range_end=100)
                          ],
                          toolbox_opts=opts.ToolboxOpts(),
                          tooltip_opts=opts.TooltipOpts(
                              is_show=True,
                              trigger='axis',
                              axis_pointer_type='cross',
                          )))
        chart.width = "600PX"
        chart.height = "600PX"
        charts.append(chart)
    return charts
Example #30
0
def DIC_scatter() -> Scatter:
    c = (Scatter().add_xaxis(DQ).add_yaxis(
        "2018年人均可支配收入(十元)",
        list(DIPC["2018年"])).add_yaxis("博物馆机构数", BQ2018).set_global_opts(
            title_opts=opts.TitleOpts(title="2018年全国各地可支配收入展示"),
            datazoom_opts=[
                opts.DataZoomOpts(),
                opts.DataZoomOpts(orient="vertical"),
                opts.DataZoomOpts(type_="inside")
            ],
        ))
    return c