From 813a916151958cb20951ce68965ed81cc9360beb Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Wed, 10 Sep 2025 15:11:25 +0800 Subject: [PATCH] 'commit' --- Routes/BigScreen.py | 76 +++++++++- Routes/__pycache__/BigScreen.cpython-310.pyc | Bin 705 -> 1947 bytes Start.py | 4 + static/index.html | 145 +++++++++++++++++++ 4 files changed, 217 insertions(+), 8 deletions(-) create mode 100644 static/index.html diff --git a/Routes/BigScreen.py b/Routes/BigScreen.py index d7f1051..a218ec8 100644 --- a/Routes/BigScreen.py +++ b/Routes/BigScreen.py @@ -1,19 +1,79 @@ from fastapi import APIRouter +import pyecharts +from pyecharts import options as opts +from pyecharts.charts import Bar +from pyecharts.faker import Faker +from pyecharts.globals import CurrentConfig +import json # 创建 APIRouter 实例 router = APIRouter(prefix="/bigscreen", tags=["大屏展示"]) -# 定义根路由,返回 helloWorld -@router.get("/") -async def root(): - return {"message": "helloWorld"} +# 配置使用自定义的 ECharts 路径 +CurrentConfig.ONLINE_HOST = "https://gcore.jsdelivr.net/npm/echarts@6.0.0/dist/" # 定义一个 helloWorld 路由 @router.get("/hello") async def hello_world(): return {"message": "helloWorld"} -# 定义一个带有参数的路由 -@router.get("/hello/{name}") -async def hello_name(name: str): - return {"message": f"helloWorld, {name}!"} \ No newline at end of file +# 生成图表配置的函数 +def generate_bar_chart_config(): + c = ( + Bar() + .add_xaxis(Faker.choose()) + .add_yaxis("商家A", Faker.values()) + .add_yaxis("商家B", Faker.values()) + .set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(自定义)")) + .set_series_opts( + label_opts=opts.LabelOpts(is_show=False), + markline_opts=opts.MarkLineOpts( + data=[opts.MarkLineItem(y=50, name="yAxis=50")] + ), + ) + ) + + # 获取图表的选项配置,使用 dump_options_with_quotes 方法获取可以直接序列化的选项 + options_str = c.dump_options_with_quotes() + + # 将字符串转换为 JSON 对象 + options_json = json.loads(options_str) + + return options_json + +# 定义一个返回图表配置的路由 +@router.get("/chart/bar") +async def get_bar_chart_config(): + """ + 获取柱状图配置 + """ + chart_config = generate_bar_chart_config() + return chart_config + +# 定义一个带有参数的路由,可以自定义图表标题 +@router.get("/chart/bar/{title}") +async def get_custom_bar_chart_config(title: str): + """ + 获取自定义标题的柱状图配置 + """ + c = ( + Bar() + .add_xaxis(Faker.choose()) + .add_yaxis("商家A", Faker.values()) + .add_yaxis("商家B", Faker.values()) + .set_global_opts(title_opts=opts.TitleOpts(title=title)) + .set_series_opts( + label_opts=opts.LabelOpts(is_show=False), + markline_opts=opts.MarkLineOpts( + data=[opts.MarkLineItem(y=50, name="yAxis=50")] + ), + ) + ) + + # 获取图表的选项配置 + options_str = c.dump_options_with_quotes() + + # 将字符串转换为 JSON 对象 + options_json = json.loads(options_str) + + return options_json diff --git a/Routes/__pycache__/BigScreen.cpython-310.pyc b/Routes/__pycache__/BigScreen.cpython-310.pyc index e6577c1fa05143282b520f6f9a68c6cb3751834c..9927c50f12daecdd4ff7bd1f3cd8c2681cacaffc 100644 GIT binary patch literal 1947 zcma)7-ESL35Wn3!pU>xWoTMofDoTLzV4=pL5`Cxu^#dv@m9(Oj5T{7i#k;XDz4Mvf zb-qZXRt=OQnLZVv@_>UXLHbasFGW-Z3H86YS8&rj^@#^6q%yNk8n+<9T01v0JF`1G zJHK&KD7XfUJ$rwx-_9AvZz%K+3xq>35jakhByR6Ch=i zrV5jW1lBwf2>4`<1!p-jg`+JYctagc8q;BI(JfDfHCYv$H(DNS)xGw8_vYp9%`5BI zZkK3kHwB*#=Tl1sHMzLIu2fSVESGE5MDVd0$#@jbim?V)L_vz#Z4Fd7oLkvWlOV=iS-W3C#jq+>DUGr&{e=@vg@tL%)!OlGwS%e2W%4rG_vEZZi) zr8y-nezRk3Z7d z4SIOgeeVb2?1`|!AKdx;{>AIv8&`k->C%Hcm)791Rj4AqMtoN@6{rSz48&|GE3%%< zZS03F9y$w$=R^6{8{=yxu13ihXwvb$eT=ve) zoxt<;nzwb;C#BE314uRjl3{iqK%i4%p9FxoV3h}ekR_r4LN!1r z0K{A}Aw^#6bvV2)MUOFXuXAzZyRX-;uKZilL;<|S0Fok-At1-ZFtR(4j3B``7Q2u< zj|2f%vUDoMC@Nk;@-mX`o}|lWH|Dz9k}8S+k@5pzFVTsfv+VyUomauEG?Heg1F3>$ zD6m=jx#q%VgB2#o;ssO=K30zPnr{!9#clO8HvS$!hqkpnEJ}ejAoc)BZK3}@{QSv@ z6UQgst-N>g^qJIz3+WcAOHG$aY65x$M%Z_Iod=x)=gl}_t%$#kMWcb@8O|n9JmQc6 R(>5K`C649n0_u#AzX1*56PW-2 literal 705 zcmZ`$&ubGw6rNw*-E6WkE&T&3o)*R2MWhxlUP5UOrAwf!naOr_lMOQ)v{Av*LQmq! zlL!_HrN>^qiT}l1C5UHlIr-iMNf3N6Z{EB&^S$qVQ$|rpz|QY{J0gsbA9z?b0f%i^ zCIKgjqy-t$gi@lYWRho8iuWvGihbd7?Se{A`e)>nCcs1yy!&*ooK#9r!}ha0GkvYpXwrb{?DA@M^I>-L@#p2&m|1VE z)gXUmMU`e|PTPG%ST&f3e24WLM?9et80WN0u6f7$LuE{wsU$p7MN#gTx{%jI*WlvP z&F?;W(31v=FM0=)Q70Yk>hihjS3O72^mg*B>*(DdA6uczvhuMVYR29LOxGcpdTrO@ zzwES!P4VHf^Gbx=ZQVf}zC@a+gmx~1Xc{fx+pkCIP`$MRw?2i+U&9y~p%P{T+(L;r zY(a`}^rj4Z<_qOKrw&M{~-Gt)5oEFL*V!w5SUQFF$x&^0B99VylnkpUV z8vnt1+I_0!nW~&H8tGeZD(zmZz`I{?a|aKHrJNM%5e{JxxIvmc;2{kJu1)#}N + + + + + 云南教育决策研究服务系统 + + + + + +
+

云南教育决策研究服务系统

+

数据可视化展示平台

+
+ +
+

柱状图示例

+
+ + +
+
+
点击"加载图表"按钮获取数据
+
+ + + + \ No newline at end of file