Example #1
0
 def renderScatter(self, xname, yname, ax, ay, times, path, op):
     for i in range(times):
         sc = Scatter(width=450, height=450, is_animation=False)
         if op == 0:
             sc.add(xname,
                    ax[i],
                    ay[i],
                    xaxis_name=xname,
                    yaxis_name=yname,
                    is_legend_show=False,
                    is_toolbox_show=False)
         elif op == -1:
             sc.add(xname,
                    ax[i],
                    ay,
                    xaxis_name=xname,
                    yaxis_name=yname,
                    is_legend_show=False,
                    is_toolbox_show=False)
         else:
             sc.add(xname,
                    ax,
                    ay[i],
                    xaxis_name=xname,
                    yaxis_name=yname,
                    is_legend_show=False,
                    is_toolbox_show=False)
         sc.render("data/" + path + str(i) + ".html")
Example #2
0
def test_scatter():

    # scatter_0
    v1 = [10, 20, 30, 40, 50, 60]
    v2 = [10, 20, 30, 40, 50, 60]
    scatter = Scatter("散点图示例")
    scatter.add("A", v1, v2)
    scatter.add("B", v1[::-1], v2)
    scatter.show_config()
    scatter.render()

    # scatter_1
    scatter = Scatter("散点图示例")
    v1, v2 = scatter.draw("../images/pyecharts-0.png")
    scatter.add("pyecharts", v1, v2, is_random=True)
    scatter.show_config()
    scatter.render()

    # scatter_2
    scatter = Scatter("散点图示例", width=800, height=480)
    v1, v2 = scatter.draw("../images/love.png")
    scatter.add("Love", v1, v2)
    scatter.render()

    # scatter_3
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2)
    scatter.render()

    # scatter_4
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2, label_color=["#000"])
    scatter.render()
Example #3
0
def test_scatter_multi_dimension():
    data = [
        [28604, 77, 17096869],
        [31163, 77.4, 27662440],
        [1516, 68, 1154605773],
        [13670, 74.7, 10582082],
        [28599, 75, 4986705],
        [29476, 77.1, 56943299],
        [31476, 75.4, 78958237],
        [28666, 78.1, 254830],
        [1777, 57.7, 870601776],
        [29550, 79.1, 122249285],
        [2076, 67.9, 20194354],
        [12087, 72, 42972254],
        [24021, 75.4, 3397534],
        [43296, 76.8, 4240375],
        [10088, 70.8, 38195258],
        [19349, 69.6, 147568552],
        [10670, 67.3, 53994605],
        [26424, 75.7, 57110117],
        [37062, 75.4, 252847810]
    ]

    x_lst = [v[0] for v in data]
    y_lst = [v[1] for v in data]
    extra_data = [v[2] for v in data]
    sc = Scatter()
    sc.add("scatter", x_lst, y_lst, extra_data=extra_data, is_visualmap=True,
           visual_dimension=2, visual_orient='horizontal',
           visual_type='size', visual_range=[254830, 1154605773],
           visual_text_color='#000')
    sc.render()
Example #4
0
def sandiandayinziti():
    '''散点打印字体'''

    scatter = Scatter("散点图示例")
    v1, v2 = scatter.draw("./img.PNG")
    scatter.add("散点图打印文字", v1, v2, is_random=True)
    scatter.render('./info/散点图打印文字.html')
Example #5
0
def test_scatter_multi_dimension():
    data = [[28604, 77, 17096869], [31163, 77.4, 27662440],
            [1516, 68, 1154605773], [13670, 74.7, 10582082],
            [28599, 75, 4986705], [29476, 77.1, 56943299],
            [31476, 75.4, 78958237], [28666, 78.1, 254830],
            [1777, 57.7, 870601776], [29550, 79.1, 122249285],
            [2076, 67.9, 20194354], [12087, 72, 42972254],
            [24021, 75.4, 3397534], [43296, 76.8, 4240375],
            [10088, 70.8, 38195258], [19349, 69.6, 147568552],
            [10670, 67.3, 53994605], [26424, 75.7, 57110117],
            [37062, 75.4, 252847810]]

    x_lst = [v[0] for v in data]
    y_lst = [v[1] for v in data]
    extra_data = [v[2] for v in data]
    sc = Scatter()
    sc.add("scatter",
           x_lst,
           y_lst,
           extra_data=extra_data,
           is_visualmap=True,
           visual_dimension=2,
           visual_orient='horizontal',
           visual_type='size',
           visual_range=[254830, 1154605773],
           visual_text_color='#000')
    sc.render()
Example #6
0
def test_scatter():

    # scatter_0
    v1 = [10, 20, 30, 40, 50, 60]
    v2 = [10, 20, 30, 40, 50, 60]
    scatter = Scatter("散点图示例")
    scatter.add("A", v1, v2)
    scatter.add("B", v1[::-1], v2)
    scatter.show_config()
    scatter.render()

    # scatter_1
    scatter = Scatter("散点图示例")
    v1, v2 = scatter.draw("../images/pyecharts-0.png")
    scatter.add("pyecharts", v1, v2, is_random=True)
    scatter.show_config()
    scatter.render()

    # scatter_2
    scatter = Scatter("散点图示例", width=800, height=480)
    v1, v2 = scatter.draw("../images/love.png")
    scatter.add("Love", v1, v2)
    scatter.render()

    # scatter_3
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2)
    scatter.render()

    # scatter_4
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2, label_color=["#000"])
    scatter.render()
Example #7
0
def draw(generation):
    s = []
    for i in generation:
        s.append(i[1])
    scatter = Scatter('牛顿法')
    # 因为牛顿法收敛很快,所以用横坐标表示不明显,故用次数表示
    scatter.add('', list(range(len(s))), s)
    scatter.render('牛顿法.html')
Example #8
0
def DrawScatter(title, data, savepath='./results'):
    if not os.path.exists(savepath):
        os.mkdir(savepath)
    scatter = Scatter(title)
    attrs = [i for i, j in data.items()]
    values = [j for i, j in data.items()]
    scatter.add('', attrs, values, is_visualmap=True)
    scatter.render(os.path.join(savepath, '%s.html' % title))
Example #9
0
def sandiantu():
    '''散点图'''
    v1 = [10, 20, 30, 40, 50, 60]
    v2 = [10, 20, 30, 40, 50, 60]
    scatter = Scatter("散点图示例")
    scatter.add("A", v1, v2)
    scatter.add("B", v1[::-1], v2)
    scatter.render('./info/散点图.html')
 def DraScatter(self, title, data, savepath='./result'):
     if (os.path.exists(savepath) is None):
         os.mkdir(savepath)
     scatter = Scatter(title)
     attrs = [data[i][0] for i in range(len(data))]
     vals = [data[i][1] for i in range(len(data))]
     scatter.add('', attrs, vals, is_visualmap=True)
     scatter.render(os.path.join(savepath, '%s.html' % title))
Example #11
0
def draw(generation):
    s1 = []
    s2 = []
    for i in generation:
        s1.append(i[0])
        s2.append(i[1])
    scatter = Scatter('弦截法')
    scatter.add('', s1, s2)
    scatter.render('弦截法.html')
Example #12
0
def draw(generator, name):
    scatter = Scatter(name)
    s1 = []
    s2 = []
    for i in generator:
        s1.append(i[0])
        s2.append(i[1])
    scatter.add('', s1, s2)
    scatter.render(name + '.html')
Example #13
0
def draw(generation):
    scatter = Scatter('定点法')
    s = []
    s1 = []
    for i in generation:
        s.append(i[0])
        s1.append(i[1])
    scatter.add('', s, s1)
    scatter.render('定点迭代法.html')
Example #14
0
def test_scatter_visualmap_type_size():
    scatter = Scatter("散点图示例")
    scatter.add("B",
                v1[::-1],
                v2,
                is_visualmap=True,
                visual_type='size',
                visual_range_size=[20, 80])
    scatter.render()
Example #15
0
def tmp():
    es = Scatter()
    x = []
    y = []
    for item in data:
        x.append(item[2])
        y.append(item[3])
    es.add('', x, y)
    es.render('1.html')
    return render_template('1.html')
Example #16
0
def drawlog(dic):
    """

    :param his: keras fit返回的的history对象字典
    :return:
    """
    line = Scatter("log")
    for label, value in dic.items():
        line.add(label, [i for i in range(len(value))], value, symbol_size=3)
    line.render(path="output/temp.html")
Example #17
0
def test_scatter_visualmap_type_size():
    scatter = Scatter("散点图示例")
    scatter.add(
        "B",
        v1[::-1],
        v2,
        is_visualmap=True,
        visual_type="size",
        visual_range_size=[20, 80],
    )
    scatter.render()
Example #18
0
 def show(self, class_key: dict, title: str, image_name):
     # print(self.show_coordinates)
     scatter = Scatter(title=title, background_color='#ffe')
     for i in range(0, self.show_coordinates.shape[0]):
         point = self.show_coordinates.iloc[i]['point']
         # print(point, class_key[point])
         coordinates = self.show_coordinates.iloc[i]['vector']
         # print(type(coordinates), type(class_key[point]))
         scatter.add(class_key[point], [coordinates[0]], [coordinates[1]])
     temp_path = 'html/render.html'
     scatter.render(path=temp_path)
     make_a_snapshot(temp_path, image_name)
Example #19
0
 def scatter_demo(self):
     # 散点图
     from pyecharts import Scatter
     scatter = Scatter('散点图', '一年的降水量与蒸发量')
     # xais_name是设置横坐标名称,这里由于显示问题,还需要将y轴名称与y轴的距离进行设置
     scatter.add("降水量与蒸发量的散点分布",
                 self.data1,
                 self.data2,
                 xaxis_name="降水量",
                 yaxis_name="蒸发量",
                 yaxis_name_gap=40)
     scatter.render('sactter.html')
 def scatter(self):
     cmtnum = []
     likenum = []
     timeS = []
     for item in self.data:
         cmtnum.append(item[0])
         likenum.append(item[1])
         d = datetime.fromtimestamp(item[2])
         timeS.append(d.year + d.month / 12)
     y_min = datetime.fromtimestamp(self.createtime_min).year
     y_max = datetime.fromtimestamp(self.createtime_max).year
     scatter = Scatter('本人说说点赞数与评论数的时间序列(二维)')
     scatter.add('评论数',
                 timeS,
                 cmtnum,
                 extra_data=cmtnum,
                 xaxis_max=y_max,
                 xaxis_min=y_min,
                 is_datazoom_extra_show=True,
                 datazoom_extra_type='inside',
                 legend_pos='right',
                 xaxis_name='年份',
                 is_visualmap=True,
                 visual_dimension=2,
                 visual_orient="horizontal",
                 visual_type="size",
                 visual_range=[0, 205],
                 visual_range_size=[5, 20],
                 visual_text_color="#000")
     scatter.add('点赞数',
                 timeS,
                 likenum,
                 extra_data=likenum,
                 xaxis_max=y_max,
                 xaxis_min=y_min,
                 is_datazoom_extra_show=True,
                 datazoom_extra_type='inside',
                 legend_pos='right',
                 xaxis_name='年份',
                 is_visualmap=True,
                 visual_dimension=2,
                 visual_orient="horizontal",
                 visual_type="size",
                 visual_range=[0, 205],
                 visual_range_size=[5, 20],
                 visual_text_color="#000")
     scatter.render(self.path + 'scatter2d_' + str(int(time.time())) +
                    '.html')
     webbrowser.open_new_tab(self.path + 'scatter2d_' +
                             str(int(time.time())) + '.html')
     self.ins.analysis_pb['value'] = 100
     self.ins.analysis_lb.configure(text='完毕')
Example #21
0
    def scatter_echar_AvgArea_price(self):
        x, y = self.getPriceInterval_avg()

        scatter = Scatter("广州市租房平均面积与平均价格关系图")
        scatter.add(
            "平均面积-平均价格",
            x,
            y,
            yaxis_name="平均价格(元)",
            xaxis_name="平均面积(平米)",
            yaxis_name_gap=50,
        )
        scatter.render('scatter_avgAreaPrice.html')
Example #22
0
def create_scatter(df):
    """
    三维度散点图
    """
    # 生成数据列表
    data = [list(i) for i in zip(df['videos'], df['fans'], df['likes'])]
    print(data)
    # 生成散点图
    x_lst = [v[0] for v in data]
    y_lst = [v[1] for v in data]
    extra_data = [v[2] for v in data]
    sc = Scatter("抖音大V视频数粉丝数点赞数三维度", title_pos='center', title_top='5', width=800, height=400)
    sc.add("", x_lst, y_lst, extra_data=extra_data, is_visualmap=True, visual_dimension=2, visual_orient="horizontal", visual_type="size", visual_range=[0, 500000000], visual_text_color="#000", visual_range_size=[5, 30])
    sc.render('抖音大V视频数粉丝数点赞数三维度.html')
    def drawPicture(self, file):
        df = pd.read_excel(file)
        df = pd.DataFrame(df)
        df.fillna(0, inplace=True)
        df['曹操'] = df['曹操'] + df['丞相'] + df['操大怒'] + df['曹丞相'] + df['操大喜']
        df['诸葛亮'] = df['诸葛亮'] + df['孔明曰'] + df['孔明笑'] + df['孔明']
        df['刘备'] = df['刘备'] + df['玄德'] + df['玄德曰'] + df['主公'] + df['刘皇叔'] + \
                   df['刘玄德'] + df['玄德大'] + df['玄德问'] + df['刘豫州'] + df['玄德闻'] + df['玄德乃']
        df['关云长'] = df['关云长'] + df['云长'] + df['关公']
        df['赵云'] = df['赵子龙'] + df['子龙'] + df['赵云']
        df['司马懿'] = df['司马懿'] + df['仲达'] + df['司马']
        df['周瑜'] = df['公瑾'] + df['周瑜']
        df['张飞'] = df['张飞'] + df['翼德']

        del ([
            df['丞相'], df['操大怒'], df['曹丞相'], df['操大喜'], df['孔明曰'], df['孔明笑'],
            df['孔明'], df['玄德'], df['玄德曰'], df['主公'], df['刘皇叔'], df['刘玄德'],
            df['玄德大'], df['玄德问'], df['刘豫州'], df['玄德闻'], df['玄德乃'], df['云长'],
            df['关公'], df['赵子龙'], df['子龙'], df['仲达'], df['司马'], df['公瑾'],
            df['翼德']
        ])

        data = pd.DataFrame(df)

        kings = ['曹操', '刘备', '孙权', '司马懿']
        shuGuo = ['刘备', '关云长', '张飞', '诸葛亮']

        x = [i for i in range(120)]
        s = Scatter('四位当权者活跃回')

        for king in kings:
            s.add('{}'.format(king),
                  x,
                  data[king],
                  xaxis_rotate=60,
                  symbol_size=4)
        s.show_config()
        s.render('四位当权者活跃回.html')
        nameS = Line('蜀国')

        for name in shuGuo:
            nameS.add('{}'.format(name),
                      x,
                      data[name],
                      xaxis_rotate=60,
                      symbol_size=0,
                      area_opacity=0.6)
        nameS.show_config()
        nameS.render('蜀国.html')
Example #24
0
def tsen_plot(name,weight,label):
    print("T-SNE start")
    # 使用T-SNE算法,对权重进行降维,准确度比PCA算法高,但是耗时长
    tsne = TSNE(n_components=2)
    decomposition_data = tsne.fit_transform(weight)
    
    x = []
    y = []
    for i in decomposition_data:
        x.append(i[0])
        y.append(i[1])
    
    scatter = Scatter(title=name,title_top='bottom',title_pos='center')
    for i in range(len(x)):
        scatter.add(str(label[i]),[x[i]],[y[i]],symbol_size=5,is_datazoom_show=True)
    scatter.render(name+".html")
def scores_of_bread(data):
    star = data['Star'].mean()
    taste = data['Taste'].mean()
    environ = data['Environment'].mean()
    service = data['Service'].mean()
    ave = (taste + environ + service) / 3
    result_show = [star, taste, environ, service, ave]
    config_info = [('星级', 50), ('口味', 10), ('环境', 10), ('服务', 10), ('综合', 10)]
    scores_fig1 = Radar('综合评分情况')
    scores_fig1.config(config_info)
    scores_fig1.add('', [result_show])
    scores_fig1.render(os.path.join(data_out, 'scores1_of_bread.html'))

    result = pd.DataFrame(columns=data.columns)
    for index, item in enumerate(data['Taste']):
        if item == data['Taste'].max():
            # print('口味最好:\n', data.loc[index])
            # print(data.loc[index].info())
            result = result.append(data.loc[index])

    for index, item in enumerate(data['Environment']):
        if item == data['Environment'].max():
            # print('环境最佳:\n', data.loc[index])
            result = result.append(data.loc[index])

    for index, item in enumerate(data['Service']):
        if item == data['Service'].max():
            # print('服务最棒:\n', data.loc[index])
            result = result.append(data.loc[index])

    result.to_csv(os.path.join(data_out, 'result_of_best.csv'),
                  encoding='utf-8-sig')

    print(
        '最昂贵的菜系:%s' %
        data.groupby('Cuisine')['Per_Consumption'].mean().idxmax(),
        '人均:%.2f元' % data.groupby('Cuisine')['Per_Consumption'].mean().max())
    print('最受欢迎的菜系:%s' % data.groupby('Cuisine')['Comments'].mean().idxmax(),
          '平均有:%d条评论' % data.groupby('Cuisine')['Comments'].mean().max())

    data['ave'] = round(
        (data['Taste'] + data['Environment'] + data['Service']) / 3, 2)

    scores_fig2 = Scatter('综合评分与餐厅星级关系')
    scores_fig2.add('综合评分', data['Star'].values, data['ave'].values)
    scores_fig2.render(os.path.join(data_out, 'scores2_of_bread.html'))
def test_scatter_visualmap():
    # visual type 'color'
    v1 = [10, 20, 30, 40, 50, 60]
    v2 = [10, 20, 30, 40, 50, 60]
    scatter = Scatter("散点图示例")
    scatter.add("A", v1, v2)
    scatter.add("B", v1[::-1], v2, is_visualmap=True)
    scatter.render()

    # visual type 'size'
    scatter = Scatter("散点图示例")
    # scatter.add("A", v1, v2)
    scatter.add("B",
                v1[::-1],
                v2,
                is_visualmap=True,
                visual_type='size',
                visual_range_size=[20, 80])
    scatter.render()
    def scatterXY(self):
        cmtnum = []
        likenum = []
        shuoshuo = []
        for item in self.data:
            cmtnum.append(item[0])
            likenum.append(item[1])
            shuoshuo.append(item[3])

        regr = linear_model.LinearRegression()
        # Train the model using the training sets
        regr.fit(np.array(likenum)[:-5].reshape(-1, 1), np.array(cmtnum)[:-5])
        pred = regr.predict(np.array(likenum)[-5:].reshape(-1, 1))
        # The coefficients
        print('Coefficients: \n', regr.coef_)
        print('Intercept:\n', regr.intercept_)
        # Explained variance score: 1 is perfect prediction
        r2 = r2_score(np.array(cmtnum)[-5:], pred)
        print('Variance score: %.2f' % r2)

        scatter = Scatter(
            '本人说说点赞数与评论数关系', '评论数 = ' + str(regr.coef_[0]) + ' * 点赞数 + ' +
            str(regr.intercept_) + '    r2 = ' + str(r2))
        scatter.add('说说',
                    likenum,
                    cmtnum,
                    extra_data=shuoshuo,
                    symbol_size=5,
                    is_label_show=False,
                    is_label_emphasis=True,
                    label_formatter='{c}',
                    label_emphasis_textcolor='#000',
                    is_datazoom_show=False,
                    is_datazoom_extra_show=False,
                    legend_pos='right',
                    xaxis_name='点赞数',
                    yaxis_name='评论数')
        scatter.render(self.path + 'regression_' + str(int(time.time())) +
                       '.html')
        webbrowser.open_new_tab(self.path + 'regression_' +
                                str(int(time.time())) + '.html')
        self.ins.analysis_pb['value'] = 100
        self.ins.analysis_lb.configure(text='完毕')
Example #28
0
def MFE(path_name):
    
    with open(path_name, 'r', encoding="utf-8") as json_file:
        date_dict = json.loads(json_file.read())
# =============================================================================
#     从掘金回撤文件中获取净值-浮动盈亏
# =============================================================================
    nav_fpnl = []
    for date in range(len(date_dict["indicatorDuration"])):
        if date != 0:
            nav_fpnl.append((date_dict["indicatorDuration"][date]["nav"],date_dict["indicatorDuration"][date]["fpnl"]))
    
    #止损能避免的损失-止损金额
    stopprofit_stoplose = []
    for index in range(len(nav_fpnl) - 1):
        if nav_fpnl[index][1]<0:
            stopprofit_stoplose.append((nav_fpnl[index][0] - (nav_fpnl[index+1][0] - nav_fpnl[index+1][1])
                    ,nav_fpnl[index][1]))
            
    temp = np.array([item[1] for item in stopprofit_stoplose]).min()
    x_total = [item[1]/temp for item in stopprofit_stoplose]
    
    temp = np.array([item[0] for item in stopprofit_stoplose]).max()
    y_total = [item[0]/temp for item in stopprofit_stoplose]
    
    x_y = list(zip(x_total,y_total))
    x_y.sort(reverse=True)
    x_y = x_y[1:161]
    x_y.sort()
# =============================================================================
#     绘制MFE
# =============================================================================
    from pyecharts import Scatter
    scatter = Scatter("MFE")
    y1 = [item[0]*10 for item in x_y if item[1]<0]
    x1 = [abs(item[1])*5 for item in x_y if item[1]<0]
    y2 = [item[0]*10 for item in x_y if item[1]>0]
    x2 = [item[1]*5 for item in x_y if item[1]>0]
    scatter.add("lose", x2, y2, symbol_size=5)
    scatter.add("win", x1, y1, symbol_size=5,
                xaxis_name="Run-up%",yaxis_name="Prfit(lose) in %",yaxis_name_gap=35)
    
    scatter.render("MFE.html")
def test_scatter_xaxis_type():
    # xAxis type 'value'
    v1 = [10, 20, 30, 40, 50, 60]
    v2 = [10, 20, 30, 40, 50, 60]
    scatter = Scatter("散点图示例")
    scatter.add("A", v1, v2)
    scatter.add("B", v1[::-1], v2)
    assert '"type": "value"' in scatter._repr_html_()
    assert '"type": "category"' not in scatter._repr_html_()
    scatter.render()

    # xAxis type 'category'
    scatter = Scatter("散点图示例")
    scatter.add("A", ["a", "b", "c", "d", "e", "f"], v2)
    scatter.add("B", ["a", "b", "c", "d", "e", "f"],
                v1[::-1],
                xaxis_type="category")
    assert '"type": "category"' in scatter._repr_html_()
    scatter.render()
Example #30
0
def scanter():
    v1, v2 = [], []
    with open("C:\\Temp\\fund\\257020_detail.json", "r") as f:
        data = json.load(f)
    for year in data["0.05"]:
        for item in data["0.05"][year]:
            if len(item) != 1:
                r = str(item).split(",")
                print(r)
                v1.append(float(r[2].replace(" ", "")))
                v1.append(float(r[3].replace(" ", "")))
                v2.append(int(r[4].replace("'", "")))
                v2.append(int(r[5][:-1].replace("'", "")))
    print(v1)
    print(v2)
    # v1 = [10, 20, 30, 40, 50, 60]
    # v2 = [10, 20, 30, 40, 50, 60]
    fund_scanter = Scatter("Fund")
    fund_scanter.add("A", v2, v1, xaxis_min=2000000, xaxis_max=20200000)
    # fund_scanter.add("B", v1[::-1], v2)
    fund_scanter.render()
Example #31
0
def scatter_map(chartname):
    plot_data_er = np.loadtxt(open(
        "static/res/charts-map/charts-data/plot_data_er2.csv", "rb"),
                              delimiter=",",
                              skiprows=0)
    plot_data_mr = np.loadtxt(open(
        "static/res/charts-map/charts-data/plot_data_mr2.csv", "rb"),
                              delimiter=",",
                              skiprows=0)
    if (chartname == 'erangel'):
        chartdata = plot_data_er

    else:
        chartdata = plot_data_mr
    x_lst = [v[0] for v in chartdata]
    y_lst = [v[1] for v in chartdata]
    extra_data = [v[2] for v in chartdata]
    sc = Scatter()
    sc.add(
        "scatter",
        x_lst,
        y_lst,
        symbol_size=5,
        extra_data=extra_data,
        is_visualmap=True,
        is_yaxis_inverse=True,
        is_xaxis_show=False,
        is_yaxis_show=False,
        is_splitline_show=False,
        visual_dimension=2,
        visual_orient="horizontal",
        #     visual_type="size",
        visual_range=[1500, 2200],
        visual_text_color="#000",
    )
    sc.render()
    return sc
def test_scatter_draw_picture():
    # draw pyecharts
    scatter = Scatter("散点图示例")
    v1, v2 = scatter.draw("../images/pyecharts-0.png")
    scatter.add("pyecharts", v1, v2, is_random=True)
    scatter.render()

    # draw love
    scatter = Scatter("散点图示例", width=800, height=480)
    v1, v2 = scatter.draw("../images/love.png")
    scatter.add("Love", v1, v2)
    scatter.render()

    # draw a hot red bra
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2)
    scatter.render()

    # draw a sexy black bra
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2, label_color=["#000"])
    scatter.render()
Example #33
0
def test_scatter_draw_love():
    scatter = Scatter("散点图示例", width=800, height=480)
    v1, v2 = scatter.draw("../images/love.png")
    scatter.add("Love", v1, v2)
    scatter.render()
Example #34
0
def test_scatter_visualmap_default():
    scatter = Scatter("散点图示例")
    scatter.add("A", v1, v2)
    scatter.add("B", v1[::-1], v2, is_visualmap=True)
    scatter.render()
Example #35
0
def test_grid():

    # grid_0
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    bar = Bar("柱状图示例", height=720, is_grid=True)
    bar.add("商家A", attr, v1, is_stack=True, grid_bottom="60%")
    bar.add("商家B", attr, v2, is_stack=True, grid_bottom="60%")
    line = Line("折线图示例", title_top="50%")
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温", attr, [11, 11, 15, 13, 12, 13, 10], mark_point=["max", "min"], mark_line=["average"])
    line.add("最低气温", attr, [1, -2, 2, 5, 3, 2, 0], mark_point=["max", "min"],
             mark_line=["average"], legend_top="50%")
    bar.grid(line.get_series(), grid_top="60%")
    bar.show_config()
    bar.render()

    # grid_1
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    scatter = Scatter(width=1200, is_grid=True)
    scatter.add("散点图示例", v1, v2, grid_left="60%", legend_pos="70%")
    es = EffectScatter()
    es.add("动态散点图示例", [11, 11, 15, 13, 12, 13, 10], [1, -2, 2, 5, 3, 2, 0],
           effect_scale=6, legend_pos="20%")
    scatter.grid(es.get_series(), grid_right="60%")
    scatter.show_config()
    scatter.render()

    # grid_2
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    bar = Bar("柱状图示例", height=720, width=1200, title_pos="65%", is_grid=True)
    bar.add("商家A", attr, v1, is_stack=True, grid_bottom="60%", grid_left="60%")
    bar.add("商家B", attr, v2, is_stack=True, grid_bottom="60%", grid_left="60%", legend_pos="80%")
    line = Line("折线图示例")
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温", attr, [11, 11, 15, 13, 12, 13, 10], mark_point=["max", "min"], mark_line=["average"])
    line.add("最低气温", attr, [1, -2, 2, 5, 3, 2, 0], mark_point=["max", "min"],
             mark_line=["average"], legend_pos="20%")
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    scatter = Scatter("散点图示例", title_top="50%", title_pos="65%")
    scatter.add("scatter", v1, v2, legend_top="50%", legend_pos="80%")
    es = EffectScatter("动态散点图示例", title_top="50%")
    es.add("es", [11, 11, 15, 13, 12, 13, 10], [1, -2, 2, 5, 3, 2, 0], effect_scale=6,
           legend_top="50%", legend_pos="20%")
    bar.grid(line.get_series(), grid_bottom="60%", grid_right="60%")
    bar.grid(scatter.get_series(), grid_top="60%", grid_left="60%")
    bar.grid(es.get_series(), grid_top="60%", grid_right="60%")
    bar.show_config()
    bar.render()

    # grid_3
    line = Line("折线图示例", width=1200, is_grid=True)
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温", attr, [11, 11, 15, 13, 12, 13, 10], mark_point=["max", "min"],
             mark_line=["average"], grid_right="65%")
    line.add("最低气温", attr, [1, -2, 2, 5, 3, 2, 0], mark_point=["max", "min"],
             mark_line=["average"], legend_pos="20%")
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [11, 12, 13, 10, 10, 10]
    pie = Pie("饼图示例", title_pos="45%")
    pie.add("", attr, v1, radius=[30, 55], legend_pos="65%", legend_orient='vertical')
    line.grid(pie.get_series(), grid_left="60%")
    line.show_config()
    line.render()

    # grid_4
    line = Line("折线图示例", width=1200, is_grid=True)
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温", attr, [11, 11, 15, 13, 12, 13, 10], mark_point=["max", "min"],
             mark_line=["average"], grid_right="60%")
    line.add("最低气温", attr, [1, -2, 2, 5, 3, 2, 0], mark_point=["max", "min"],
             mark_line=["average"], legend_pos="20%", grid_right="60%")
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    value = [20, 40, 60, 80, 100, 120]
    v1 = [[2320.26, 2320.26, 2287.3, 2362.94],
          [2300, 2291.3, 2288.26, 2308.38],
          [2295.35, 2346.5, 2295.35, 2345.92],
          [2347.22, 2358.98, 2337.35, 2363.8],
          [2360.75, 2382.48, 2347.89, 2383.76],
          [2383.43, 2385.42, 2371.23, 2391.82],
          [2377.41, 2419.02, 2369.57, 2421.15],
          [2425.92, 2428.15, 2417.58, 2440.38],
          [2411, 2433.13, 2403.3, 2437.42],
          [2432.68, 2334.48, 2427.7, 2441.73],
          [2430.69, 2418.53, 2394.22, 2433.89],
          [2416.62, 2432.4, 2414.4, 2443.03],
          [2441.91, 2421.56, 2418.43, 2444.8],
          [2420.26, 2382.91, 2373.53, 2427.07],
          [2383.49, 2397.18, 2370.61, 2397.94],
          [2378.82, 2325.95, 2309.17, 2378.82],
          [2322.94, 2314.16, 2308.76, 2330.88],
          [2320.62, 2325.82, 2315.01, 2338.78],
          [2313.74, 2293.34, 2289.89, 2340.71],
          [2297.77, 2313.22, 2292.03, 2324.63],
          [2322.32, 2365.59, 2308.92, 2366.16],
          [2364.54, 2359.51, 2330.86, 2369.65],
          [2332.08, 2273.4, 2259.25, 2333.54],
          [2274.81, 2326.31, 2270.1, 2328.14],
          [2333.61, 2347.18, 2321.6, 2351.44],
          [2340.44, 2324.29, 2304.27, 2352.02],
          [2326.42, 2318.61, 2314.59, 2333.67],
          [2314.68, 2310.59, 2296.58, 2320.96],
          [2309.16, 2286.6, 2264.83, 2333.29],
          [2282.17, 2263.97, 2253.25, 2286.33],
          [2255.77, 2270.28, 2253.31, 2276.22]]
    kline = Kline("K 线图示例", title_pos="60%")
    kline.add("日K", ["2017/7/{}".format(i + 1) for i in range(31)], v1, legend_pos="80%")
    line.grid(kline.get_series(), grid_left="55%")
    line.show_config()
    line.render()

    # grid_5
    import random
    x_axis = ["12a", "1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a", "11a",
              "12p", "1p", "2p", "3p", "4p", "5p", "6p", "7p", "8p", "9p", "10p", "11p"]
    y_aixs = ["Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"]
    data = [[i, j, random.randint(0, 50)] for i in range(24) for j in range(7)]
    heatmap = HeatMap("热力图示例", height=700, is_grid=True)
    heatmap.add("热力图直角坐标系", x_axis, y_aixs, data, is_visualmap=True, visual_top="45%",
                visual_text_color="#000", visual_orient='horizontal', grid_bottom="60%")
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    bar = Bar("柱状图示例", title_top="52%")
    bar.add("商家A", attr, v1, is_stack=True)
    bar.add("商家B", attr, v2, is_stack=True, legend_top="50%")
    heatmap.grid(bar.get_series(), grid_top="60%")
    heatmap.show_config()
    heatmap.render()
Example #36
0
import pandas as pd 

dfboy = pd.DataFrame()
dfboy['weight'] = [56,67,65,70,57,60,80,85,76,64]
dfboy['height'] = [162,170,168,172,168,172,180,176,178,170]

dfgirl = pd.DataFrame()
dfgirl['weight'] = [50,62,60,70,57,45,62,65,70,56]
dfgirl['height'] = [155,162,165,170,166,158,160,170,172,165]

scatter = Scatter(title = "体格数据",width = 600,height = 420)
scatter.add(name = "boy", x_axis = dfboy['weight'], y_axis = dfboy['height'])
scatter.add(name = "girl", x_axis = dfgirl['weight'], y_axis = dfgirl['height'],
           yaxis_min = 130,yaxis_max = 200,xaxis_min = 30,xaxis_max = 100)

scatter.render("result.散点图示范.html")

scatter



#当样本属性维度多于2个时,散点图可以使用点的颜色或大小等方式来表达更多属性维度。下面示范使用点的大小表示第3个维度。
def custom_formatter(params):
    return (params.value[3] + ':' +
             str(params.value[0]) +','
             +str(params.value[1]) + ','
             +str(params.value[2]))

df = pd.DataFrame()
df['country'] = ["中国",'美国','德国','法国','英国','日本','俄罗斯','印度','澳大利亚','加拿大']
df['life-expectancy'] = [76.9,79.1,81.1,81.9,81.4,83.5,73.13,66.8,81.8,81.7]
Example #37
0
def test_scatter_draw_sexy_black_bra():
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2, label_color=["#000"])
    scatter.render()
Example #38
0
def test_scatter_draw_pyecharts():
    scatter = Scatter("散点图示例")
    v1, v2 = scatter.draw("../images/pyecharts-0.png")
    scatter.add("pyecharts", v1, v2, is_random=True)
    scatter.render()
Example #39
0
def test_grid():

    # grid_0
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    bar = Bar("柱状图示例", height=720, is_grid=True)
    bar.add("商家A", attr, v1, is_stack=True, grid_bottom="60%")
    bar.add("商家B", attr, v2, is_stack=True, grid_bottom="60%")
    line = Line("折线图示例", title_top="50%")
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温",
             attr, [11, 11, 15, 13, 12, 13, 10],
             mark_point=["max", "min"],
             mark_line=["average"])
    line.add("最低气温",
             attr, [1, -2, 2, 5, 3, 2, 0],
             mark_point=["max", "min"],
             mark_line=["average"],
             legend_top="50%")
    bar.grid(line.get_series(), grid_top="60%")
    bar.show_config()
    bar.render()

    # grid_1
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    scatter = Scatter(width=1200, is_grid=True)
    scatter.add("散点图示例", v1, v2, grid_left="60%", legend_pos="70%")
    es = EffectScatter()
    es.add("动态散点图示例", [11, 11, 15, 13, 12, 13, 10], [1, -2, 2, 5, 3, 2, 0],
           effect_scale=6,
           legend_pos="20%")
    scatter.grid(es.get_series(), grid_right="60%")
    scatter.show_config()
    scatter.render()

    # grid_2
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    bar = Bar("柱状图示例", height=720, width=1200, title_pos="65%", is_grid=True)
    bar.add("商家A", attr, v1, is_stack=True, grid_bottom="60%", grid_left="60%")
    bar.add("商家B",
            attr,
            v2,
            is_stack=True,
            grid_bottom="60%",
            grid_left="60%",
            legend_pos="80%")
    line = Line("折线图示例")
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温",
             attr, [11, 11, 15, 13, 12, 13, 10],
             mark_point=["max", "min"],
             mark_line=["average"])
    line.add("最低气温",
             attr, [1, -2, 2, 5, 3, 2, 0],
             mark_point=["max", "min"],
             mark_line=["average"],
             legend_pos="20%")
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    scatter = Scatter("散点图示例", title_top="50%", title_pos="65%")
    scatter.add("scatter", v1, v2, legend_top="50%", legend_pos="80%")
    es = EffectScatter("动态散点图示例", title_top="50%")
    es.add("es", [11, 11, 15, 13, 12, 13, 10], [1, -2, 2, 5, 3, 2, 0],
           effect_scale=6,
           legend_top="50%",
           legend_pos="20%")
    bar.grid(line.get_series(), grid_bottom="60%", grid_right="60%")
    bar.grid(scatter.get_series(), grid_top="60%", grid_left="60%")
    bar.grid(es.get_series(), grid_top="60%", grid_right="60%")
    bar.show_config()
    bar.render()

    # grid_3
    line = Line("折线图示例", width=1200, is_grid=True)
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温",
             attr, [11, 11, 15, 13, 12, 13, 10],
             mark_point=["max", "min"],
             mark_line=["average"],
             grid_right="65%")
    line.add("最低气温",
             attr, [1, -2, 2, 5, 3, 2, 0],
             mark_point=["max", "min"],
             mark_line=["average"],
             legend_pos="20%")
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [11, 12, 13, 10, 10, 10]
    pie = Pie("饼图示例", title_pos="45%")
    pie.add("",
            attr,
            v1,
            radius=[30, 55],
            legend_pos="65%",
            legend_orient='vertical')
    line.grid(pie.get_series(), grid_left="60%")
    line.show_config()
    line.render()

    # grid_4
    line = Line("折线图示例", width=1200, is_grid=True)
    attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
    line.add("最高气温",
             attr, [11, 11, 15, 13, 12, 13, 10],
             mark_point=["max", "min"],
             mark_line=["average"],
             grid_right="60%")
    line.add("最低气温",
             attr, [1, -2, 2, 5, 3, 2, 0],
             mark_point=["max", "min"],
             mark_line=["average"],
             legend_pos="20%",
             grid_right="60%")
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    value = [20, 40, 60, 80, 100, 120]
    v1 = [[2320.26, 2320.26, 2287.3,
           2362.94], [2300, 2291.3, 2288.26, 2308.38],
          [2295.35, 2346.5, 2295.35, 2345.92],
          [2347.22, 2358.98, 2337.35, 2363.8],
          [2360.75, 2382.48, 2347.89, 2383.76],
          [2383.43, 2385.42, 2371.23, 2391.82],
          [2377.41, 2419.02, 2369.57, 2421.15],
          [2425.92, 2428.15, 2417.58,
           2440.38], [2411, 2433.13, 2403.3, 2437.42],
          [2432.68, 2334.48, 2427.7, 2441.73],
          [2430.69, 2418.53, 2394.22, 2433.89],
          [2416.62, 2432.4, 2414.4, 2443.03],
          [2441.91, 2421.56, 2418.43, 2444.8],
          [2420.26, 2382.91, 2373.53, 2427.07],
          [2383.49, 2397.18, 2370.61, 2397.94],
          [2378.82, 2325.95, 2309.17, 2378.82],
          [2322.94, 2314.16, 2308.76, 2330.88],
          [2320.62, 2325.82, 2315.01, 2338.78],
          [2313.74, 2293.34, 2289.89, 2340.71],
          [2297.77, 2313.22, 2292.03, 2324.63],
          [2322.32, 2365.59, 2308.92, 2366.16],
          [2364.54, 2359.51, 2330.86, 2369.65],
          [2332.08, 2273.4, 2259.25, 2333.54],
          [2274.81, 2326.31, 2270.1, 2328.14],
          [2333.61, 2347.18, 2321.6, 2351.44],
          [2340.44, 2324.29, 2304.27, 2352.02],
          [2326.42, 2318.61, 2314.59, 2333.67],
          [2314.68, 2310.59, 2296.58, 2320.96],
          [2309.16, 2286.6, 2264.83, 2333.29],
          [2282.17, 2263.97, 2253.25, 2286.33],
          [2255.77, 2270.28, 2253.31, 2276.22]]
    kline = Kline("K 线图示例", title_pos="60%")
    kline.add("日K", ["2017/7/{}".format(i + 1) for i in range(31)],
              v1,
              legend_pos="80%")
    line.grid(kline.get_series(), grid_left="55%")
    line.show_config()
    line.render()

    # grid_5
    import random
    x_axis = [
        "12a", "1a", "2a", "3a", "4a", "5a", "6a", "7a", "8a", "9a", "10a",
        "11a", "12p", "1p", "2p", "3p", "4p", "5p", "6p", "7p", "8p", "9p",
        "10p", "11p"
    ]
    y_aixs = [
        "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday",
        "Sunday"
    ]
    data = [[i, j, random.randint(0, 50)] for i in range(24) for j in range(7)]
    heatmap = HeatMap("热力图示例", height=700, is_grid=True)
    heatmap.add("热力图直角坐标系",
                x_axis,
                y_aixs,
                data,
                is_visualmap=True,
                visual_top="45%",
                visual_text_color="#000",
                visual_orient='horizontal',
                grid_bottom="60%")
    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    bar = Bar("柱状图示例", title_top="52%")
    bar.add("商家A", attr, v1, is_stack=True)
    bar.add("商家B", attr, v2, is_stack=True, legend_top="50%")
    heatmap.grid(bar.get_series(), grid_top="60%")
    heatmap.show_config()
    heatmap.render()
Example #40
0
def test_scatter_draw__hot_red_bra():
    scatter = Scatter("散点图示例", width=1000, height=480)
    v1, v2 = scatter.draw("../images/cup.png")
    scatter.add("Cup", v1, v2)
    scatter.render()