import json from flask import Flask, redirect, jsonify from pyecharts import options as opts from pyecharts.charts import Bar, Pie, Line app = Flask(__name__) @app.route('/report/LxBar', methods=['GET']) def bar(): # 项目单位情况 # LeiXing = ['小学', '初中', '九年一贯制', '高中', '完全中学', '十二年一贯制'] # c = ( # Bar() # .add_xaxis(LeiXing) # .add_yaxis("城区", [10, 20, 64, 40, 32, 28], # itemstyle_opts=opts.ItemStyleOpts(color="#0984e3")) # .add_yaxis("乡镇", [26, 34, 55, 46, 11, 22], # itemstyle_opts=opts.ItemStyleOpts(color="#00b894"), gap="0%", category_gap="50%" # ) # .set_global_opts( # legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color="#80828F")), # xaxis_opts=opts.AxisOpts( # axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#80828F")), # axislabel_opts=opts.LabelOpts(rotate=45)), # yaxis_opts=opts.AxisOpts( # axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#80828F")), # splitline_opts=opts.SplitLineOpts(is_show=True, # linestyle_opts=opts.LineStyleOpts(color="#404040", type_="dashed"))) # ) # .dump_options() # ) # 项目类型分布 x_data = ["基础条件装备", "学科装备", "信息技术教学装备", "创新教育装备"] y_data = [188, 168, 226, 135] c = ( Pie() .add( "", center=["50%", "40%"], data_pair=[list(z) for z in zip(x_data, y_data)], radius=["35%", "60%"], label_opts=opts.LabelOpts( position="outside", formatter="{b}: {c} ({d}%)", color="#80828F" ) ) .set_colors(["#0984e3", "#d63031", "#00b894", "#fdcb6e"]) .set_global_opts(legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color="#80828F"),pos_bottom=20)) .dump_options() ) # 项目进展情况-趋势分布 # LeiXing = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] # c = ( # Line() # .add_xaxis(LeiXing) # .add_yaxis("项目立项", [41, 45, 46, 47, 50, 46, 53, 52, 54, 45, 50, 46], # areastyle_opts=opts.AreaStyleOpts(opacity=0.1, color="#74b9ff"), color="#fdcb6e") # .add_yaxis("招标采购", [28, 37, 35, 41, 39, 42, 43, 40, 37, 35, 38, 36], # areastyle_opts=opts.AreaStyleOpts(opacity=0.1, color="#a29bfe"), color="#00b894") # .add_yaxis("实施验收", [17, 25, 30, 31, 29, 34, 29, 31, 26, 30, 31, 25], # areastyle_opts=opts.AreaStyleOpts(opacity=0.1, color="#ff7675"), color="#d63031") # .add_yaxis("项目拨付", [11, 16, 19, 21, 23, 20, 17, 20, 15, 20, 15, 16], # areastyle_opts=opts.AreaStyleOpts(opacity=0.1, color="#55efc4"), color="#6c5ce7") # .add_yaxis("项目结束", [5, 7, 11, 15, 12, 13, 8, 9, 5, 7, 10, 4], # areastyle_opts=opts.AreaStyleOpts(opacity=0.1, color="#ffeaa7"), color="#0984e3") # # .set_global_opts( # legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color="#80828F")), # xaxis_opts=opts.AxisOpts( # axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#80828F"))), # yaxis_opts=opts.AxisOpts( # axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#80828F")), # splitline_opts=opts.SplitLineOpts(is_show=True, # linestyle_opts=opts.LineStyleOpts(color="#404040", type_="dashed"))) # ) # .dump_options() # ) # 项目进展情况 - 单位分布 # LeiXing = ['小学', '初中', '九年一贯制', '高中', '完全中学', '十二年一贯制'] # c = ( # Bar() # .add_xaxis(LeiXing) # .add_yaxis("项目立项", [10, 20, 25, 26, 18, 12], stack="stack1", color="#fdcb6e") # .add_yaxis("招标采购", [11, 16, 19, 21, 23, 20], stack="stack1", color="#00b894") # .add_yaxis("实施验收", [13, 8, 10, 16, 11, 7], stack="stack1", color="#d63031") # .add_yaxis("项目拨付", [9, 15, 16, 20, 18, 11], stack="stack1", color="#6c5ce7") # .add_yaxis("项目结束", [5, 7, 11, 15, 12, 13], stack="stack1", color="#0984e3") # .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # .set_global_opts( # legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color="#80828F")), # xaxis_opts=opts.AxisOpts( # axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#80828F"))), # yaxis_opts=opts.AxisOpts( # axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(color="#80828F")), # splitline_opts=opts.SplitLineOpts(is_show=True, # linestyle_opts=opts.LineStyleOpts(color="#404040", type_="dashed"))) # ) # # .dump_options() # ) print(c) return jsonify(json.loads(c)) def index(): return redirect('/static/index.html') if __name__ == '__main__': # 调试环境配置方法 app.run(host='0.0.0.0', port=8888, debug=True)