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")
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()
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()
def sandiandayinziti(): '''散点打印字体''' scatter = Scatter("散点图示例") v1, v2 = scatter.draw("./img.PNG") scatter.add("散点图打印文字", v1, v2, is_random=True) scatter.render('./info/散点图打印文字.html')
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()
def draw(generation): s = [] for i in generation: s.append(i[1]) scatter = Scatter('牛顿法') # 因为牛顿法收敛很快,所以用横坐标表示不明显,故用次数表示 scatter.add('', list(range(len(s))), s) scatter.render('牛顿法.html')
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))
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))
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')
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')
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')
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()
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')
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")
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()
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)
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='完毕')
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')
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')
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='完毕')
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()
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()
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()
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()
def test_scatter_visualmap_default(): scatter = Scatter("散点图示例") scatter.add("A", v1, v2) scatter.add("B", v1[::-1], v2, is_visualmap=True) scatter.render()
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()
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]
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()
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()
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()
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()