def test_bar3D(): # bar3D_0 bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) 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 = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0],[0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2], [1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7], [1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2], [2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2], [2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5], [2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4], [3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4], [3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5], [3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1], [4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1], [4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4], [4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1], [4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0], [5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0], [5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1], [5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6], [5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0], [6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0], [6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0], [6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0], [6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]] range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] bar3d.add("", x_axis, y_aixs, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3D_width=200, grid3D_depth=80) bar3d.show_config() bar3d.render() # bar3D_1 bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) bar3d.add("", x_axis, y_aixs, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3D_width=200, grid3D_depth=80, grid3D_shading='lambert') bar3d.show_config() bar3d.render() # bar3D_2 bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) bar3d.add("", x_axis, y_aixs, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3D_width=200, grid3D_depth=80, is_grid3D_rotate=True) bar3d.show_config() bar3d.render() # bar3D_3 bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) bar3d.add("", x_axis, y_aixs, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3D_width=200, grid3D_depth=80, is_grid3D_rotate=True, grid3D_rotate_speed=180) bar3d.show_config() bar3d.render()
def test_bar3d_shading_lambert(): bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) bar3d.add("", X_TIME, Y_WEEK, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=RANGE_COLOR, grid3d_width=200, grid3d_depth=80, grid3d_shading='lambert') assert "lambert" in bar3d._repr_html_()
def threeD1_fun(): bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) 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_axis = [ "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday" ] df = pd.read_csv("mycharts/abc.csv") data = df.values.tolist() range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] bar3d.add( "", x_axis, y_axis, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, ) return bar3d
def view_bar_3D(y_list, data_list, name=str()): """ 需要数据 self.x_list 12个月的月份[日期] 等... self.y_list 各个不同的年份 等... self.date_list [[x, y, v], [x, y, v]] x和y是坐标索引,从0开始计算,v是展示的值 :return: """ x_list = ["{}月".format(i) for i in range(1, 13)] bar3d = Bar3D(name, width=1000, height=500) range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] print(x_list, y_list, data_list) bar3d.add( "", x_list, y_list, data_list, is_visualmap=True, visual_range=[0, int(max(data_list, key=lambda x: x[2])[2])], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, is_toolbox_show=False, grid3d_shading='lambert', # is_grid3d_rotate=True, ) return bar3d.render_embed()
def generate_3d_bar_chart(): data = pd.read_excel(input_file_path + '每日销量.xlsx', sheet_name=0) print(data.head()) x_axis = data['week'].tolist() data['week'] = data['week'].str.replace('week', '').map(int) - 1 data = data.set_index('week') y_axis = data.columns.tolist() data.columns = range(0, 7) data = data.stack().reset_index() data.columns = ['week', 'day', 'amount'] print(data.head()) style = Style( title_color='#A52A2A', title_pos='center', width=900, height=1100, background_color='#ABABAB' ) style_3d = style.add( is_visualmap=True, visual_range=[0, 120], visual_range_color=['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'], grid3d_width=200, grid3d_depth=80, xaxis_label_textcolor='#fff', is_grid3d_rotate=True, legend_pos='right' ) bar3d = Bar3D('全年产量情况', **style.init_style) bar3d.add('每日产量', x_axis, y_axis, data.values.tolist(), **style_3d) bar3d.render(output_file_path + 'htmls/全年产量情况3D柱状图.html')
def create_charts(): page = Page() conn=mysql2pd('140.143.161.111', '3306', 'mm', 'root', 'a091211') data=conn.doget("select 监测点,AQI指数,`PM2.5`,PM10,Co,No2,So2,O3,updata_time from aqi") conn.close() ps=data['监测点'].drop_duplicates().values ts=data['updata_time'].drop_duplicates().values cs=['AQI指数','PM2.5','PM10','Co','No2','So2','O3'] for p in ps: res = [] data1=data[data['监测点']==p] for i,c in enumerate(cs): for x,t in enumerate(ts): data2=data1[data1['updata_time']==t] for l in list(data2[c].values): res.append([i,x,l]) style = Style( width=WIDTH, height=HEIGHT ) chart = Bar3D(p, **style.init_style) chart.add(p, ts, cs, [{'name':ts[d[1]],'value':[d[1], d[0], d[2]]} for d in res], is_visualmap=True, visual_range=[0, 180], visual_range_color=RANGE_COLOR, grid3d_width=80, grid3d_depth=80) page.add(chart) return page
def weekday_analysis(request): io, all_transaction = loginTest(request) x_axis = list(style.keys()) y_axis = [ "Sunday","Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday" ] y_axis.reverse() range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] result = {} for weekday in y_axis: result[weekday]={} for tag in x_axis: result[weekday][tag]=0 for tx in all_transaction: weekday = y_axis[datetime.datetime.fromtimestamp(tx.obj["timestamp"]).weekday()] for tag in tx.obj["tags"]: result[weekday][tag]+=abs(tx.obj["amount"]) data=[] max_value=0 for i,weekday in enumerate(y_axis): for j,tag in enumerate(x_axis): if result[weekday][tag]>max_value: max_value=result[weekday][tag] data.append([i,j,result[weekday][tag]]) bar3d = Bar3D("You can see how much you spent on each category on each weekday", width="100%", height="100%") bar3d.add("", x_axis, y_axis, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0,max_value], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80,grid3d_shading='lambert',xaxis_interval=10, xaxis_rotate=30, yaxis_rotate=30) return bar3d
def test_bar3d_rotate_automatically(): bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) bar3d.add("", X_TIME, Y_WEEK, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=RANGE_COLOR, grid3d_width=200, grid3d_depth=80, is_grid3d_rotate=True) bar3d.render()
def view_bar_3D(self): """ 需要数据 self.x_list 12个月的月份[日期] 等... self.y_list 各个不同的年份 等... self.date_list [[x, y, v], [x, y, v]] x和y是坐标索引,从0开始计算,v是展示的值 :return: """ bar3d = Bar3D("%s年度销货汇总总表" % self.table_name, width=1200, height=600, page_title="3D VIEW") range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] bar3d.add( "", self.x_list, self.y_list, self.data_list, is_visualmap=True, visual_range=[0, int(max(self.data_list, key=lambda x: x[2])[2])], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, is_toolbox_show=False, grid3d_shading='lambert') bar3d.render(path=self.BASE_PATH + "%s3D_display.html" % self.html_name)
def threeD(str, x_order, y_order, z_order): bar3d = Bar3D(background_color="#white", width=1300, height=800) bar3d.add("城市职位薪水3D柱状图", x_order, y_order, z_order, grid3d_opacity=0.8, grid3d_shading="realistic") bar3d.render("城市职位薪水3D柱状图.html")
def reli2(t): bar3d = Bar3D("3D 柱状图示-热播电视剧", width=1200, height=600) x_axis, y_axis, y = [], [], [] for i in t: x_axis.append(i[0]) Str = ''.join(i[1].split(',')) # 注意这里i[2]是一个对象 y.append(int(int(Str) / 1500)) x_axis = x_axis # print(x_axis, y) y_axis = ["one", "two", "three", "four", "five", "six"] da, data = [], [] for i in y: # 生成7个随机数,是他们的和为i while 1: n1 = random.randint(0, i) n2 = random.randint(0, i) n3 = random.randint(0, i) n4 = random.randint(0, i) n5 = random.randint(0, i) n6 = random.randint(0, i) su = n1 + n2 + n3 + n4 + n5 + n6 if su == i: listRandom = n1, n2, n3, n4, n5, n6 break da.append(listRandom) for i in range(6): for j in range(50): x = [i, j, da[j][i]] data.append(x) # print(data) range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf' ] bar3d.add( "", x_axis, y_axis, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 80], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, grid3d_shading="lambert", is_grid3d_rotate=True, # grid3d_rotate_speed=180 ) bar3d.render(pathConfig.HTLMSREPATH + '电视剧热力图.html')
def view_bar_3D(spi, name=str()): """ 需要数据 self.x_list 12个月的月份[日期] 等... self.y_list 各个不同的年份 等... self.date_list [[x, y, v], [x, y, v]] x和y是坐标索引,从0开始计算,v是展示的值 :return: """ y_set = set() value_dict = {} for i in spi: year = str(i.sell_date)[:4] ym = str(i.sell_date)[:7] y_set.add(year) if ym in value_dict: value_dict[ym] += int(i.total_price) else: value_dict[ym] = int(i.total_price) data_list = [[int(k[5:7]) - 1, int(k[:4]) - 2015, int(v)] for k, v in value_dict.items()] y_list = sorted(list(y_set)) x_list = ["{}月".format(i) for i in range(1, 13)] bar3d = Bar3D(name + "销货汇总", width=1000, height=500) range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] # print(x_list, y_list, data_list) bar3d.add("", x_list, y_list, data_list, is_visualmap=True, visual_range=[0, int(max(data_list, key=lambda x: x[2])[2])], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, is_toolbox_show=False, grid3d_shading='lambert', is_grid3d_rotate=True, ) return bar3d.render_embed()
def get_bar3d(): """ 获取3d柱状图 :return: """ data = list() bar3d = Bar3D('计算机领域招聘信息柱状图', 'hello,i\'m 苍天有井', width=1200, height=600, background_color='pink', page_title='老舍就业分析网', renderer='gif') citys = ['北京', '上海', '广州', '深圳'] kws = ['python web', '爬虫', '大数据', 'ai'] range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] for i in range(len(citys)): for j in range(len(kws)): data.append([ i, j, len( TSj.objects.filter(city=citys[i], position__icontains=kws[j])) ]) print(data) bar3d.add( '招聘信息分布图', citys, kws, [[d[0], d[1], d[2]] for d in data], is_visualmap=True, is_grid3d_rotate=True, visual_range=[0, 20], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, is_more_utils=True, ) return bar3d
def test_bar3d_default(patched): fixture = "bar3d_options.json" patched.return_value = "1" bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) bar3d.add( "", X_TIME, Y_WEEK, [[1, 1, 1]], is_visualmap=True, visual_range=[0, 20], visual_range_color=RANGE_COLOR, grid3d_width=200, grid3d_depth=80, ) actual_options = dumps_actual_options(bar3d.options) expected = get_fixture_content(fixture) for a, b in zip(actual_options.split("\n"), expected.split("\n")): eq_(a.strip(), b.strip())
def Paint3DBar(points, x_axis, name): bar3d = Bar3D(name, width=1200, height=600) y_axis = ["一等奖", "二等奖", "三等奖", "完成奖"] range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] bar3d.add( "获奖情况", x_axis, y_axis, [[d[0], d[1], d[2]] for d in points], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, grid3d_shading="lambert", ) bar3d.render(name + '.html')
def draw_first_barchart(): df['profits'] = [(i - j) / 1000000 for i, j in zip(df.gross, df.budget)] value_column = 'profits' mc_column = 'genres' mc_sep = '|' cut_column = 'title_year' year_labels = ["old", "80's", "90's", "00's", "recent"] bins = [1926, 1979, 1989, 1999, 2011, 2016] df[cut_column + '_level'] = pd.cut(df[cut_column], bins=bins, labels=year_labels) df_mc_column = pde.multi_content_column(df[mc_column], sep=mc_sep) x_axis = list(df_mc_column.classes.keys()) # process data value = [] for i in year_labels: dfi = df.loc[df[cut_column + '_level'] == i, :] dfi_mc_column = pde.multi_content_column(dfi[mc_column], sep=mc_sep) v = [] for i in x_axis: v.append( round( dp.mean(dfi.loc[dfi_mc_column.contains(i), value_column]), 2)) value.append(v) dfv = pd.DataFrame(np.array(value).T) dfv[mc_column] = x_axis dfv = dfv.sort_values(by=4, ascending=False) # draw chart from pyecharts import Bar chart_title = 'Profits of movie from different genres over years' bar = Bar(chart_title, title_pos='center') for i in range(len(value)): bar.add(year_labels[i], dfv[mc_column], dfv[i], mark_line=['average'], mark_point=['max'], is_more_utils=True, is_datazoom_show=True, datazoom_type='both', legend_top='7%', yaxis_name=value_column, yaxis_name_gap=40) bar.render(chart_title + '.html') #---------------------------------------------------------------------------- # bar3d # process data value = [] for i in year_labels: dfi = df.loc[df[cut_column + '_level'] == i, :] dfi_mc_column = pde.multi_content_column(dfi[mc_column], sep=mc_sep) v = [] for i in x_axis: v.append( round( dp.mean(dfi.loc[dfi_mc_column.contains(i), value_column]), 2)) value.append(v) dfv = pd.DataFrame(np.array(value).T) dfv[mc_column] = x_axis dfv = dfv.sort_values(by=4, ascending=False) value = [[] for _ in range(dfv.shape[1] - 1)] for i in range(dfv.shape[0]): for j in range(dfv.shape[1] - 1): value[j].append([i, j, dfv.iloc[i, j]]) dfv pprint(value[0]) from pyecharts import Bar3D title = 'Profits of movie from different genres over years' bar3d = Bar3D(title, title_pos='center') for j in range(dfv.shape[1] - 1): pprint(value[j]) bar3d.add(year_labels[j], dfv[mc_column], year_labels, value[j], is_legend_show=True, legend_top='7%', zaxis3d_name=value_column, grid3d_opacity=1, xaxis3d_interval=0, grid3d_width=200, grid3d_depth=60, grid3d_shading='realistic', is_grid3d_rotate=True) print('rendering') bar3d.render(title + '(Bar3D).html')
def create_charts(): page = Page() style = Style(width=WIDTH, height=HEIGHT) data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2], [1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7], [1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2], [2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2], [2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5], [2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4], [3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4], [3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5], [3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1], [4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1], [4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4], [4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1], [4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0], [5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0], [5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1], [5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6], [5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0], [6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0], [6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0], [6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0], [6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]] chart = Bar3D("3D 柱状图-默认", **style.init_style) chart.add("", X_TIME, Y_WEEK, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=RANGE_COLOR, grid3d_width=200, grid3d_depth=80) page.add(chart) chart = Bar3D("3D 柱状图-立体感", **style.init_style) chart.add("", X_TIME, Y_WEEK, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=RANGE_COLOR, grid3d_width=200, grid3d_depth=80, grid3d_shading='lambert') page.add(chart) chart = Bar3D("3D 柱状图-自动旋转", **style.init_style) chart.add("", X_TIME, Y_WEEK, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=RANGE_COLOR, grid3d_width=200, grid3d_depth=80, is_grid3d_rotate=True) page.add(chart) chart = Bar3D("3D 柱状图-加速旋转", **style.init_style) chart.add("", X_TIME, Y_WEEK, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=RANGE_COLOR, grid3d_width=200, grid3d_depth=80, is_grid3d_rotate=True, grid3d_rotate_speed=180) page.add(chart) return page
data[year[i]-1908,month[i]-1] = data[year[i]-1908,month[i]-1]+1 # 发生空难次数最多的月份 data.max() # 17 # 构建三维数据集 # (y,x,z)格式 data1 = [] for i in range(102): for j in range(12): data1.append([j,i,data[i,j]]) # get 3-D picture from pyecharts import Bar3D bar3d = Bar3D("空难分布 3D 柱状图","year-month", width=1200, height=600) x_axis = yearlist y_aixs = monthlist range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'] bar3d.add("", x_axis, y_aixs, [[d[1], d[0], d[2]] for d in data1], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80) bar3d.render("空难分布年月3D.html") # 生成本地 HTML 文件 bar3d # 画空难次数随小时变化的情况 import matplotlib.pyplot as plt import seaborn as sns
##################################################### # ? Bar3D(3D 柱状图) ##################################################### from pyecharts import Bar3D bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) 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_axis = [ "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday" ] data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2], [1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7], [1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2], [2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2], [2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5], [2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4], [3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0],
def bar3d(): # bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) 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_axis = [ "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday" ] data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2], [1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7], [1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2], [2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2], [2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5], [2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4], [3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4], [3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5], [3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1], [4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1], [4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4], [4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1], [4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0], [5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0], [5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1], [5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6], [5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0], [6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0], [6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0], [6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0], [6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]] range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) bar3d.add( "", x_axis, y_axis, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, is_grid3d_rotate=True, ) # bar3d.render() return render_template( 'bar3d.html', bar3d=bar3d.render_embed(), host=REMOTE_HOST, script_list=bar3d.get_js_dependencies(), )
cur.close() conn.close() proc = 0.00 page = Page() # 爬取进度 liquid = Liquid('网页爬取进度') nowpro = sql_count() / 6977 proc = Decimal(nowpro).quantize(Decimal('0.00')) liquid.add("爬取进度", [str(proc)]) # 3D 柱状图 bar3d = Bar3D("豆瓣评分", width=1620, height=720) datalist = sql_select(0, 6977) # 书名 x_axis = [] y_axis = [] data = [] y = 0 x = 0 # 词库云 book_name = [] reviews = [] for book in datalist: try: if book['title'].find('》') != -1: name = re.search(r'《.*》', book['title'], flags=0).group(0)
import pandas as pd import numpy as np df_train = pd.read_csv(r'D:\新建文件夹\train.csv') # print(df_train.head(3)) df_train.head(3) df_train.shape df_train.info() df_train.describe() from pyecharts import Bar, Line, Bar3D import matplotlib.pyplot as plt bar3d = Bar3D("2018年申请人数分布", width=1200, height=600) 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_axis = [ "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday" ] data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2],
# -*- coding: utf-8 -*- """ Created on Thu Aug 10 11:29:20 2017 @author: 17549 """ from pyecharts import Bar3D bar3d=Bar3D("3D柱状图",width=1200,height=600) 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_axis=["Staurday","Firday","Thursday","Wednesday","Tuesday","Monday","Sunday"] data=[[0,0,5],[0,1,1],[0,2,0],[0,3,0],[0,4,0],[0,5,0],[0,6,0],[0,7,0],[0,8,0], [0,9,0],[0,10,0],[0,11,2],[0,12,4],[0,13,1],[0,14,1],[0,15,3],[0,16,4], [0,17,6],[0,18,4],[0,19,4],[0,,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0], [0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0], [0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0], ]
def test_bar3d_must_use_canvas(): bar3d = Bar3D() eq_(bar3d.renderer, "canvas")
bar # ## 一线城市与二线城市的评分差异 # 求出不同城市评分的均值 city_list = ["北京", "上海", "西安", "太原"] gender_city_score_mean = df[df.city.isin(city_list)].groupby( ["gender", "city"], as_index=False)["score"].mean() city_data, city_index = pd.factorize(gender_city_score_mean.city) gender_data, gender_index = pd.factorize(gender_city_score_mean.gender) data = list(zip(city_data, gender_data, gender_city_score_mean.score.values)) bar3d = Bar3D("一线城市与二线城市的评分差异", width=650, height=450) range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] bar3d.add("", city_index, gender_index, data, is_visualmap=True, visual_range=[0, 5], visual_range_color=range_color, grid3d_width=150, grid3d_depth=80, is_grid3d_rotate=False)
# print(index) # x为商品名,y为日期,z为浏览 for y, day in enumerate(dataset): for x, key in enumerate(set(keys)): # 因为每天发布的宝贝不一样,因此 try: xyz.append([x, y, dataset[day][key][-1]]) except Exception as e: # print(e) # print([x, y, 0]) xyz.append([x, y, 0]) # print(xyz) bar3d = Bar3D("闲鱼商品数据3D图", title_pos="center", width=1800, height=1000) bar3d.add('', list(set(keys)), days, xyz, is_label_show=True, is_visualmap=True, visual_range=[0, 500], grid3d_width=100, xaxis3d_name_size=12, grid3d_height=100, grid3d_depth=150, is_grid3d_rotate=True, xaxis3d_name='商品名', xaxis3d_interval=0)
def test_bar3d_must_use_canvas(): bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) eq_(bar3d.renderer, 'canvas')
def index7(request): from pyecharts import Bar3D bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) 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_axis = [ "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday" ] data = [] data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2], [1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7], [1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2], [2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2], [2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5], [2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4], [3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4], [3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5], [3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1], [4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1], [4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4], [4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1], [4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0], [5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0], [5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1], [5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6], [5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0], [6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0], [6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0], [6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0], [6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]] range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] bar3d.add( "", x_axis, y_axis, [[d[1], d[0], d[2]] for d in data], is_visualmap=True, visual_range=[0, 20], visual_range_color=range_color, grid3d_width=200, grid3d_depth=80, ) bar3d.render('templates/imagelist/class_grade3d.html') with open('templates/imagelist/class_grade3d.html', 'rb') as f: data = f.read() return HttpResponse(data)
(data_max.max() - data_min.min())) ] ) #(1-(data.iloc[i,j]-data_min.min())/(data_max.max()-data_min.min())) # print(i,j,(1-(data.iloc[i,j]-data_min.min())/(data_max.max()-data_min.min()))) #[d[1], d[0], d[2]] for d in data: #print(data[i].min()) print(data_out) x_axis = list() y_axis = list() for i in range(36): x_axis.append(i) y_axis.append(i) bar3d = Bar3D("3D 柱状图示例", width=1200, height=600) ''' 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_axis = [ "Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday" ] data1 = [ [0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0],
with open('out.data', 'r') as file: lines = file.readlines() words = lines[0].split() user = words[1:] date = [] data = [] for line, x in zip(lines[1:], range(len(lines[1:]))): words = line.split() date.append(words[0]) seconds = [float(word) for word in words[1:]] data_line = [[x, y, int(height)] for y, height in zip(range(len(seconds)), seconds)] data += data_line #[date, user, time] from pyecharts import Bar3D bar3d = Bar3D("Job Accounting", width=1200, height=1200) range_color = [ '#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026' ] bar3d.add("", user, date, [[d[1], d[0], d[2]] for d in data], yaxis_name='user', is_visualmap=True, visual_range=[0, 10000000], visual_range_color=range_color, grid3D_width=100, grid3D_depth=200) bar3d.show_config() bar3d.render()