def line_markpoint_custom(): x, y = Faker.choose(), Faker.values() obj_l = Line() obj_l.add_xaxis(x) obj_l.add_yaxis("商家A", y, markpoint_opts=opts.MarkPointOpts( data=[opts.MarkPointItem(name="自定义标记点", coord=[x[2], y[2]], value=y[2])] ) ) obj_l.set_series_opts( # 设置该参数,则x对应的y值会显示出来,该参数默认为True label_opts=opts.LabelOpts(is_show=False), ) obj_l.set_global_opts( title_opts=opts.TitleOpts(title="Line-MarkPoint(自定义)",subtitle="自定义标注"), xaxis_opts=opts.AxisOpts( name="x轴", # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,可设置x轴刻度顶格 boundary_gap=True, # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。 axistick_opts=opts.AxisTickOpts(is_align_with_label=True) ), ) return obj_l
def line_markline(): obj_l = Line() obj_l.add_xaxis(Faker.choose()) obj_l.add_yaxis("商家A", Faker.values(), markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]), # 该参数设置在这里只对商家A起作用 label_opts=opts.LabelOpts(is_show=False) ) obj_l.add_yaxis("商家B", Faker.values(), markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]), ) obj_l.set_series_opts( # 该参数设置在这里对商家A,商家B都起作用 # 设置该参数,则x对应的y值会显示出来,该参数默认为True label_opts=opts.LabelOpts(is_show=False), ) obj_l.set_global_opts( title_opts=opts.TitleOpts(title="Line-MarkLine", subtitle="平均值的线"), xaxis_opts=opts.AxisOpts( name="x轴", # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,可设置x轴刻度顶格 boundary_gap=True, # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。 axistick_opts=opts.AxisTickOpts(is_align_with_label=True) ), ) return obj_l
def createPlotLine(df, xAxisTitle, yAxisTitle, title=None): line = Line() line.add_xaxis(df[xAxisTitle].tolist()) line.add_yaxis(yAxisTitle, df[yAxisTitle].tolist()) if not title: title = "" line.set_global_opts( tooltip_opts=opts.TooltipOpts(trigger='axis', axis_pointer_type='cross'), title_opts=opts.TitleOpts(title=title) ) ptg75 = df[yAxisTitle].quantile(.75) ptg50 = df[yAxisTitle].quantile(.5) ptg25 = df[yAxisTitle].quantile(.25) line.set_series_opts( markline_opts=opts.MarkLineOpts( data=[ opts.MarkLineItem(y=ptg75, name="75%"), opts.MarkLineItem(y=ptg50, name="50%"), opts.MarkLineItem(y=ptg25, name="25%") ] ), ) return line
def generate_html(): xlist = [] ylist = [] with open(filename, 'r') as f: r = csv.reader(f, dialect='excel') content = list(r) xlist.append(content[0][0]) for i in range(1, len(content[0])): ylist.append([content[0][i]]) for i in range(1, len(content)): xlist.append(content[i][0]) for j in range(1, len(content[i])): ylist[j - 1].append(content[i][j]) line = Line() line.add_xaxis(xlist[1:]) for i in range(len(ylist)): line.add_yaxis(ylist[i][0], ylist[i][1:]) line.set_global_opts(title_opts=opts.TitleOpts('CPU实时监测')) line.set_series_opts(markpoint_opts=opts.MarkPointItem( type_=['min', 'max'])) line.set_global_opts(xaxis_opts=opts.AxisOpts(name=xlist[0])) line.set_global_opts(yaxis_opts=opts.AxisOpts(name='percent')) line.render(today + '_cpu.html')
def draw_balance_line(xaxis, yaxis, title="消费统计", markline=None, width=2000) -> Line: """ x = [月_日, 月_日, 月_日, ....] y = [(title1, [num1, num2, num3, num4, ...]), (title2, [num1, num2, num3, num4, ...])] :param xaxis: x轴 :param yaxis: y轴 :param title: 标题 :param markline: 标记辅助线 :param width: 宽 :return: Line """ line = Line() line.add_xaxis(xaxis) for name, axis in yaxis: line.add_yaxis(name, axis, is_symbol_show=True) line.set_global_opts(title_opts=opts.TitleOpts(title=title, ), datazoom_opts=[ opts.DataZoomOpts(range_start=0, range_end=100), opts.DataZoomOpts(type_="inside") ], tooltip_opts=opts.TooltipOpts( trigger='axis', axis_pointer_type='shadow')) line.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) if markline is not None: line.set_series_opts(markline_opts=opts.MarkLineOpts( data=[opts.MarkLineItem(y=markline, name='预算')])) return line
def gen_cci(self, df1, n): high_list = df1.apply(lambda record: float(record['high']), axis=1).tolist() high_list = np.array(high_list) low_list = df1.apply(lambda record: float(record['low']), axis=1).tolist() low_list = np.array(low_list) close_list = df1.apply(lambda record: float(record['close']), axis=1).tolist() close_list = np.array(close_list) rsi_n = talib.CCI(high_list, low_list, close_list, n) line = Line() line.add_xaxis(xaxis_data=list(df1['datetime'])) line.add_yaxis( 'cci_' + str(n), y_axis=rsi_n, xaxis_index=1, yaxis_index=1, label_opts=opts.LabelOpts(is_show=False), ) line.set_global_opts( yaxis_opts=opts.AxisOpts(min_=-150, max_=150), # xaxis_opts=opts.AxisOpts(is_show=False), xaxis_opts=opts.AxisOpts( axislabel_opts=opts.LabelOpts(is_show=False), ), legend_opts=opts.LegendOpts(is_show=True, pos_right="38%"), ) line.set_series_opts(label_opts=opts.LabelOpts(is_show=False), ) return line
def report(request): """返回慢SQL历史趋势""" checksum = request.GET.get('checksum') cnt_data = ChartDao().slow_query_review_history_by_cnt(checksum) pct_data = ChartDao().slow_query_review_history_by_pct_95_time(checksum) cnt_x_data = [row[1] for row in cnt_data['rows']] cnt_y_data = [int(row[0]) for row in cnt_data['rows']] pct_y_data = [str(row[0]) for row in pct_data['rows']] line = Line(init_opts=opts.InitOpts(width='800', height='380px')) line.add_xaxis(cnt_x_data) line.add_yaxis("慢查次数", cnt_y_data, is_smooth=True, markline_opts=opts.MarkLineOpts(data=[ opts.MarkLineItem(type_="max", name='最大值'), opts.MarkLineItem(type_="average", name='平均值') ])) line.add_yaxis("慢查时长(95%)", pct_y_data, is_smooth=True, is_symbol_show=False) line.set_series_opts(areastyle_opts=opts.AreaStyleOpts(opacity=0.5, )) line.set_global_opts( title_opts=opts.TitleOpts(title='SQL历史趋势'), legend_opts=opts.LegendOpts(selected_mode='single'), xaxis_opts=opts.AxisOpts( axistick_opts=opts.AxisTickOpts(is_align_with_label=True), is_scale=False, boundary_gap=False, ), ) result = {"status": 0, "msg": '', "data": line.render_embed()} return HttpResponse(json.dumps(result), content_type='application/json')
def gen_rsi(df1): close_list = df1.apply(lambda record: float(record['close']), axis=1).tolist() close_list = np.array(close_list) rsi_5 = talib.RSI(close_list, 5) rsi_20 = talib.RSI(close_list, 20) line = Line() line.add_xaxis(xaxis_data=list(df1['datetime'])) line.add_yaxis( 'rsi_5', y_axis=rsi_5, xaxis_index=1, yaxis_index=1, label_opts=opts.LabelOpts(is_show=False), ) line.add_yaxis( 'rsi_20', y_axis=rsi_20, xaxis_index=1, yaxis_index=1, label_opts=opts.LabelOpts(is_show=False), ) line.set_global_opts( # xaxis_opts=opts.AxisOpts(is_show=False), xaxis_opts=opts.AxisOpts( axislabel_opts=opts.LabelOpts(is_show=False), ), legend_opts=opts.LegendOpts(is_show=True, pos_right="50%"), ) line.set_series_opts(label_opts=opts.LabelOpts(is_show=False), ) return line
def line_html(self, title, key, val, color=None): # 实例化 line = Line(self.init_opts) # X轴 line.add_xaxis(key) # Y轴 line.add_yaxis( "", val, markline_opts=self.markline_opts, # 标记线选项 markpoint_opts=self.markpoint_opts # 标记点选项 ) # 系列配置 line.set_series_opts( linestyle_opts=options.LineStyleOpts( opacity=0.2, # 透明度 ), # 线条样式 areastyle_opts=options.AreaStyleOpts( opacity=0.4, # 透明度 color=color # 颜色 ) # 面积样式 ) # 全局配置 line.set_global_opts( title_opts=self.title_opts_custom(title), # 标题选项 datazoom_opts=[options.DataZoomOpts()], # 缩放选项 yaxis_opts=options.AxisOpts(min_=0, max_=100), # Y轴范围 ) # 返回图表html代码 return line.render_embed()
def stat_area_trend(): df = load_data() df['发证月份'] = [i[:7] for i in df['发证日期']] summary = df.groupby('发证月份').sum() columns_area = ['预售建筑面积', '总建筑面积', '住宅面积', '办公面积', '其他面积', '车库面积'] columns_other = ['层数', '住宅套数'] chart = Line() chart.add_xaxis(summary.index.tolist()) for column in columns_area: chart.add_yaxis(column, summary[column].tolist(), areastyle_opts=opts.AreaStyleOpts(opacity=0.1), is_smooth=True) chart.set_series_opts(label_opts=opts.LabelOpts( is_show=False), ).extend_axis(yaxis=opts.AxisOpts( axislabel_opts=opts.LabelOpts(is_show=False), is_show=False)) bar = Bar() bar.add_xaxis(summary.index.tolist()) for column in columns_other: bar.add_yaxis(column, summary[column].tolist(), yaxis_index=1) chart.overlap(bar) min_date = min(df['发证日期']) max_date = max(df['发证日期']) chart.set_global_opts(title_opts=opts.TitleOpts( title="长沙预售房屋面积变化趋势", subtitle="统计日期:{}至{},数据来源:{}".format(min_date, max_date, DATA_SOURCE)), legend_opts=opts.LegendOpts(is_show=True), toolbox_opts=opts.ToolboxOpts(is_show=True)) filename = os.path.join('..', 'assets', '01_changsha_zhufangyushou_面积趋势.html') chart.render(filename)
def gen_line(df1, symbol, price_min, price_max): #df1['datetime'] = df1['date'] + ' ' + df1['time'] df1['datetime'] = df1['date'] dt_list = list(df1['datetime']) close_list = df1.apply(lambda record: float(record['close']), axis=1).tolist() close_list = np.array(close_list) line1 = Line(init_opts=opts.InitOpts(height='700px', width='1300px')) line1.set_global_opts( yaxis_opts=opts.AxisOpts( min_=price_min, #min_=999, max_=price_max, splitarea_opts=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)), ), datazoom_opts=[ opts.DataZoomOpts( is_show=True, type_="slider", range_start=0, range_end=100, ), ], ) line1.add_xaxis(xaxis_data=dt_list) line1.add_yaxis( symbol, y_axis=close_list, ) line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) return line1
def line_power(): obj_l = Line() obj_l.add_xaxis(xaxis_data=["0","1", "2", "3", "4", "5", "6", "7", "8"]) obj_l.add_yaxis("2的指数图像", y_axis=[1, 2, 4, 8, 16, 32, 64, 128, 256],linestyle_opts=opts.LineStyleOpts(width=2), is_smooth=True) obj_l.set_series_opts( # 设置该参数,则x对应的y值会显示出来,该参数默认为True label_opts=opts.LabelOpts(is_show=True), ) obj_l.set_global_opts( title_opts=opts.TitleOpts(title="Line-2的指数图像",subtitle="副标题"), xaxis_opts=opts.AxisOpts( name="x轴", # 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,可设置x轴刻度顶格 boundary_gap=False # 类目轴中在 boundaryGap 为 true 的时候有效,可以保证刻度线和标签对齐。 # axistick_opts=opts.AxisTickOpts(is_align_with_label=True) ), yaxis_opts=opts.AxisOpts( # y轴名字 name="y轴", # 根据y轴刻度的横线 splitline_opts=opts.SplitLineOpts(is_show=True), # 只在数值轴中(type: 'value')有效 # is_scale = False ) ) return obj_l
def gen_rsi(df1): close_list = df1.apply(lambda record: float(record['close']), axis=1).tolist() close_list = np.array(close_list) rsi_5 = talib.RSI(close_list, 5) rsi_20 = talib.RSI(close_list, 20) line = Line() line.add_xaxis( xaxis_data=list(df1['datetime']) ) line.add_yaxis( 'rsi_5', y_axis=rsi_5, xaxis_index=1, yaxis_index=1, label_opts=opts.LabelOpts(is_show=False), ) line.add_yaxis( 'rsi_20', y_axis=rsi_20, xaxis_index=1, yaxis_index=1, label_opts=opts.LabelOpts(is_show=False), ) line.set_global_opts( # xaxis_opts=opts.AxisOpts(is_show=False), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(is_show=False),), ) line.set_series_opts( label_opts=opts.LabelOpts(is_show=False), markline_opts=opts.MarkLineOpts( #data=[opts.MarkLineItem(y=66),opts.MarkLineItem(y=33),], data=[opts.MarkLineItem(y=50)], ) ) return line
def Line_charts() -> Line: c = Line() c.add_xaxis(xaxis_data=x) c.add_yaxis(series_name='', y_axis=y1) c.add_yaxis(series_name='', y_axis=y2) # c.is_inverse() c.set_series_opts(label_opts=opts.LabelOpts(position="right")) c.set_global_opts(title_opts=opts.TitleOpts(title="Bar-测试渲染图片")) return c
def line_chart(): # 折线图 line = Line() x_y_axis = get_chart_data() line.add_xaxis(x_y_axis[0]) for j in x_y_axis[1]: for key, value in j.items(): line.add_yaxis(key, value, areastyle_opts=opts.AreaStyleOpts(opacity=1), label_opts=opts.LabelOpts(is_show=False)) line.set_series_opts( # linestyle_opts=opts.LineStyleOpts( # width=5, # opacity=1, # type_='solid', # ) markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_="max", name="最大值"), opts.MarkPointItem(type_="min", name="最小值"), ]), ) line.set_global_opts( title_opts=opts.TitleOpts( title="API耗时统计", subtitle="生产环境", pos_left="30%", title_textstyle_opts=opts.TextStyleOpts(color='red'), subtitle_textstyle_opts=opts.TextStyleOpts(color='blue')), xaxis_opts=opts.AxisOpts( name="运行时间", type_="category", boundary_gap=False, # axislabel_opts=opts.LabelOpts(rotate=15) ), yaxis_opts=opts.AxisOpts(name="实际的响应时间(单位:秒)", # min_=0, # max_=20 ), legend_opts=opts.LegendOpts(type_='scroll', selected_mode='multiple', pos_left='right', pos_top='10%', orient='vertical'), tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="line"), toolbox_opts=opts.ToolboxOpts(is_show=True, pos_left='right'), visualmap_opts=opts.VisualMapOpts(is_show=True, type_="size", min_=0, max_=20, range_text=["最大值", "最小值"]), datazoom_opts=[opts.DataZoomOpts(range_start=50, range_end=100)], ) line = line.dump_options_with_quotes() return line
def gen_line(df1, s1, price_min, price_max): df1['datetime'] = df1['date'] + ' ' + df1['time'] # df1['datetime'] = df1['date'] dt_list1 = list(df1['datetime']) # print( len(dt_list1) ) # dt_list1 = [s[5:10] for s in dt_list1] close_list1 = df1.apply(lambda record: float(record['close']), axis=1).tolist() close_list1 = np.array(close_list1) # print(close_list1) #line1 = Line(init_opts=opts.InitOpts(width='1500px', height='600px')) line1 = Line() line1.set_global_opts( yaxis_opts=opts.AxisOpts( min_=price_min, max_=price_max, splitarea_opts=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)), ), datazoom_opts=[ opts.DataZoomOpts( is_show=True, type_="slider", xaxis_index=[0, 1], range_start=0, range_end=100, ), opts.DataZoomOpts( is_show=False, type_="inside", xaxis_index=[0, 1], range_start=0, range_end=100, ), ], #legend_opts=opts.LegendOpts(is_show=False), #tooltip_opts=opts.TooltipOpts( trigger="axis",axis_pointer_type="cross" ), tooltip_opts=opts.TooltipOpts(axis_pointer_type="cross"), axispointer_opts=opts.AxisPointerOpts( is_show=True, link=[{ "xAxisIndex": "all" }], ), ) line1.add_xaxis(xaxis_data=dt_list1) line1.add_yaxis( s1, y_axis=close_list1, ) line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) return line1
def charthtml(FileName): data = pd.read_csv(FileName) # 发布时间类别 category = list(set(data["发布时间"].values.tolist())) line = Line() # line.add_xaxis(data['当地时间'].tolist()) for i in category: line.add_xaxis(data[data["发布时间"] == i]['当地时间'].to_list()) line.add_yaxis(i, data[data["发布时间"] == i]['播放数'].to_list()) line.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) line.render('ACI单个作品实时数据.csv.html')
def line_areastyle_boundary_gap(): obj_l = Line() obj_l.add_xaxis(Faker.choose()) obj_l.add_yaxis("商家A", Faker.values(), is_smooth=True) obj_l.add_yaxis("商家B", Faker.values(), is_smooth=True) obj_l.set_series_opts( areastyle_opts=opts.AreaStyleOpts(opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) obj_l.set_global_opts( title_opts=opts.TitleOpts(title="Line-面积图(紧贴 Y 轴)",subtitle="副标题"), xaxis_opts=opts.AxisOpts(boundary_gap=False) ) return obj_l
def echarts_lin(x_data_list, y_name, y_data_list): # 渲染图大小 line = Line(init_opts=opts.InitOpts(width='1000px')) # X轴数据 line.add_xaxis(x_data_list) # Y轴名称和 for i_name, i_reslut in zip(y_name, y_data_list): if i_name not in ('学资源', '讨论', '单题', '微课程', '一般任务', '直播课', '个性化', '先声'): line.add_yaxis('{}'.format(i_name), i_reslut, is_selected=True) else: line.add_yaxis('{}'.format(i_name), i_reslut, is_selected=False) # 全局配置 line.set_global_opts( # 主标题 title_opts=opts.TitleOpts(title=""), # 缩放功能 datazoom_opts=opts.DataZoomOpts(is_show=True, type_='slider', range_start=90, range_end=100), tooltip_opts=opts.TooltipOpts(trigger="axis"), xaxis_opts=opts.AxisOpts(axislabel_opts={ "interval": "0", "rotate": 45 }, ), ) # 系统配置 line.set_series_opts( # 图中显示数值 label_opts=opts.LabelOpts(is_show=True), # 线装图,平均线 markline_opts=opts.MarkLineOpts(data=[ opts.MarkLineItem(type_="average", name="平均值"), ]), # 点装图,最大值最小值 markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_="min", name="最小值"), opts.MarkPointItem(type_="max", name="最大值"), ]), ) return line
def tail_northup(): """ 北上资金跟踪 :return: """ df = db.read("tail_northup") result_df = df.set_index(['day', 'name']).unstack('name')['share_ratio'] rs_df = ((result_df - result_df.shift()).fillna(0) * 100).applymap(lambda x: round(x)) selected = sorted(list(rs_df.iloc[-1].items()), key=lambda x: x[1], reverse=True)[0][0] c = Line() c = c.add_xaxis(rs_df.index.tolist()) for key in rs_df: is_selected = key == selected c = c.add_yaxis(key, rs_df[key].values.tolist(), is_smooth=True, is_selected=is_selected) c = c.set_series_opts( areastyle_opts=opts.AreaStyleOpts(opacity=0.5), label_opts=opts.LabelOpts(is_show=False), ) c = c.set_global_opts( title_opts=opts.TitleOpts(title="主力跟踪-北上资金", subtitle=datetime.now().strftime("%Y%m%d")), xaxis_opts=opts.AxisOpts( axistick_opts=opts.AxisTickOpts(is_align_with_label=True), is_scale=False, boundary_gap=False, ), legend_opts=opts.LegendOpts(pos_left=100, pos_top=50) ) return c
def Line_ele(name, model_names, datas, y_name, y_max): x = [n for n in range(len(datas[0]))] line = Line(init_opts=opts.InitOpts(bg_color='rgba(255,250,205,0.2)', width='1500px', height='600px', page_title=name)) line.add_xaxis(xaxis_data=x) average = [] for i in range(len(datas)): sum = 0 num = 0 y = [n[0] for n in datas[i]] line.add_yaxis(series_name=model_names[i], y_axis=y, symbol="arrow", is_symbol_show=False) for j in datas[i]: sum += j[0] num = num + 1 if j[0] > 0 else num average.append(sum / num) print(sum, num, average[i]) line.set_series_opts( label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_="min", name="最小值"), opts.MarkPointItem(type_="max", name="最大值"), ]), markline_opts=opts.MarkLineOpts(data=[ opts.MarkLineItem(name="multi", y=average[0]), opts.MarkLineItem(name="multis", y=average[1]), opts.MarkLineItem(name="plans", y=average[2]) ]), ) line.set_global_opts( title_opts=opts.TitleOpts(title=name), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=30), name='TEST_PICS'), yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=30), name=y_name, min_=0, max_=y_max), legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts( font_size=30))) util.mkdir('./analysis') line.render('./analysis/' + name + '.html')
def gen_line(df1): #df1['datetime'] = df1['date'] + ' ' + df1['time'] df1['datetime'] = df1['date'] dt_list1 = list(df1['datetime']) # print( len(dt_list1) ) # dt_list1 = [s[5:10] for s in dt_list1] close_list1 = df1.apply(lambda record: float(record['close1']), axis=1).tolist() close_list1 = np.array(close_list1) # print(close_list1) close_list2 = df1.apply(lambda record: float(record['close2']), axis=1).tolist() close_list2 = np.array(close_list2) price_min = 9000 line1 = Line(init_opts=opts.InitOpts(width='1500px', height='600px')) line1.set_global_opts( yaxis_opts=opts.AxisOpts( min_=price_min, #max_=price_max, splitarea_opts=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)), ), datazoom_opts=[ opts.DataZoomOpts( is_show=True, type_="slider", range_start=0, range_end=100, ), ], ) line1.extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts( formatter="{value} °C"))) line1.add_xaxis(xaxis_data=dt_list1) line1.add_yaxis( 'left', y_axis=close_list1, ) line1.add_yaxis('right', y_axis=close_list2, yaxis_index=1) line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) return line1
def gen_resid(dt_list, close_list): line = Line() line.add_xaxis(xaxis_data=dt_list) line.add_yaxis( 'resid', y_axis=close_list, xaxis_index=1, yaxis_index=1, label_opts=opts.LabelOpts(is_show=False), ) line.set_global_opts( #yaxis_opts=opts.AxisOpts(min_=-150,max_=150), # xaxis_opts=opts.AxisOpts(is_show=False), xaxis_opts=opts.AxisOpts( axislabel_opts=opts.LabelOpts(is_show=False), ), ) line.set_series_opts(label_opts=opts.LabelOpts(is_show=False), ) return line
def _draw_sim(data: VideoCutResult) -> Line: x_axis = [str(i.start) for i in data.range_list] ssim_axis = [i.ssim for i in data.range_list] mse_axis = [i.mse for i in data.range_list] psnr_axis = [i.psnr for i in data.range_list] line = Line(init_opts=opts.InitOpts(bg_color=BACKGROUND_COLOR)) line.add_xaxis(x_axis) line.add_yaxis('ssim', ssim_axis) line.add_yaxis('mse', mse_axis) line.add_yaxis('psnr', psnr_axis) line.set_global_opts( title_opts=opts.TitleOpts(title='SIM'), toolbox_opts=opts.ToolboxOpts(is_show=True), tooltip_opts=opts.TooltipOpts(is_show=True, trigger='axis', axis_pointer_type='cross'), ) line.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) return line
def build_line_chart(title="Line-Chart", xaxis=list( map(lambda x: datetime.now() + timedelta(x), range(0, 7))), yaxis=[("商家A", [114, 55, 27, 101, 125, 27, 105]), ("商家B", [57, 134, 137, 129, 145, 60, 49])], position="right"): l = Line() l.add_xaxis(xaxis) for y in yaxis: l.add_yaxis( *y, markpoint_opts=opts.MarkPointOpts( data=[opts.MarkPointItem(type_="max")]), ) l.set_series_opts(label_opts=opts.LabelOpts(position=position)) l.set_global_opts(title_opts=opts.TitleOpts(title=title)) return l
def _draw_sim(data: VideoCutResult) -> Line: x_axis = [str(i.start) for i in data.range_list] ssim_axis = [i.ssim for i in data.range_list] mse_axis = [i.mse for i in data.range_list] psnr_axis = [i.psnr for i in data.range_list] line = Line(init_opts=opts.InitOpts(bg_color=constants.BACKGROUND_COLOR)) line.add_xaxis(x_axis) line.add_yaxis("ssim", ssim_axis) line.add_yaxis("mse", mse_axis) line.add_yaxis("psnr", psnr_axis) line.set_global_opts( title_opts=opts.TitleOpts(title="SIM"), toolbox_opts=opts.ToolboxOpts(is_show=True), tooltip_opts=opts.TooltipOpts( is_show=True, trigger="axis", axis_pointer_type="cross" ), ) line.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) return line
def zhe_xian(): line = Line(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION)) line.add_xaxis(data["月份"].to_list()) line.add_yaxis("盈利", data["母婴"].to_list(), is_smooth=True, areastyle_opts=opts.AreaStyleOpts(opacity=0.2, color='#9bf6ff')) line.set_global_opts(title_opts=opts.TitleOpts(title="母婴:月盈利")) line.set_series_opts( label_opts=opts.LabelOpts(is_show=False), #不显示数字 markpoint_opts=opts.MarkPointOpts(data=[ opts.MarkPointItem(type_="max", name="最大值"), opts.MarkPointItem(type_="min", name="最小值"), ]), markline_opts=opts.MarkLineOpts(data=[ opts.MarkLineItem(type_="average", name="平均值"), ]), ) line.render('../graph/5.4(母婴月盈利).html')
def show_showtime(): data=select_data() # 折线图初始化 line = Line(init_opts=opts.InitOpts(page_title="豆瓣电影-中外电影上映年份分布图")) # 横坐标 line.add_xaxis(data[0]) # 纵坐标 line.add_yaxis("全球", data[1], color="#2f4554") line.add_yaxis("中国", data[2], color="#749f83") line.add_yaxis("美国", data[3], color="#c23531") line.set_series_opts( label_opts=opts.LabelOpts(is_show=False), # 标记最大值 markpoint_opts=opts.MarkPointOpts( data=[ opts.MarkPointItem(type_="max", name="最大值"), ] ) ) # 全局配置 line.set_global_opts( # 标题 title_opts=opts.TitleOpts( title="豆瓣电影-中外电影上映年份分布图", pos_left='center'), # 标签 legend_opts=opts.LegendOpts( pos_left="620px", pos_top="28px"), # 水平滚动条 datazoom_opts=opts.DataZoomOpts(), # 纵坐标设置 yaxis_opts=opts.AxisOpts( # 显示坐标轴刻度 axistick_opts=opts.AxisTickOpts(is_show=True), # 显示分割线 splitline_opts=opts.SplitLineOpts(is_show=True) ) ) # 生成HTML html="pages/iframes/showtime.html" line.render("./templates/"+html) return html
def show_score(): data=select_data() line = Line(init_opts=opts.InitOpts(page_title='豆瓣电影TOP250-中外电影评分分布')) line.add_xaxis(data[0]) line.add_yaxis("全球", data[1], is_smooth=True, color="#749f83") line.add_yaxis("美国", data[2], is_smooth=True, color="#c23531") line.add_yaxis("中国", data[3], is_smooth=True, color="#61a0a8") line.set_series_opts( areastyle_opts=opts.AreaStyleOpts(opacity=0.5), label_opts=opts.LabelOpts(is_show=False), # 标记最大值 markpoint_opts=opts.MarkPointOpts( data=[ opts.MarkPointItem(type_="max", name="最大值"), ] ) ) line.set_global_opts( title_opts=opts.TitleOpts(title="豆瓣电影TOP250-中外电影评分分布", pos_left='center'), # 水平滚动条 datazoom_opts=opts.DataZoomOpts(), xaxis_opts=opts.AxisOpts( axistick_opts=opts.AxisTickOpts(is_align_with_label=True), is_scale=False, boundary_gap=False, ), legend_opts=opts.LegendOpts( pos_left="620px", pos_top="28px"), yaxis_opts=opts.AxisOpts( # 显示坐标轴刻度 axistick_opts=opts.AxisTickOpts(is_show=True), # 显示分割线 splitline_opts=opts.SplitLineOpts(is_show=True) ) ) # 生成HTML html="pages/iframes/score.html" line.render("./templates/"+html) return html
def gen_line(df1, s1, price_min, price_max): df1['datetime'] = df1['date'] + ' ' + df1['time'] # df1['datetime'] = df1['date'] dt_list1 = list(df1['datetime']) # print( len(dt_list1) ) # dt_list1 = [s[5:10] for s in dt_list1] close_list1 = df1.apply(lambda record: float(record['close']), axis=1).tolist() close_list1 = np.array(close_list1) # print(close_list1) line1 = Line(init_opts=opts.InitOpts(width='1500px', height='600px')) line1.set_global_opts( yaxis_opts=opts.AxisOpts( min_=price_min, max_=price_max, splitarea_opts=opts.SplitAreaOpts( is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)), ), datazoom_opts=[ opts.DataZoomOpts( is_show=True, type_="slider", range_start=0, range_end=100, ), ], ) line1.add_xaxis(xaxis_data=dt_list1) line1.add_yaxis( s1, y_axis=close_list1, #is_connect_nones=True, ) line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) return line1