From b184e18adefdb97aad841d2bc706f25cae3911ee Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Mon, 10 Mar 2025 08:56:44 +0800 Subject: [PATCH] 'commit' --- AI/Text2Sql/Util/EchartsUtil.py | 31 ++++++++---------- .../__pycache__/EchartsUtil.cpython-310.pyc | Bin 4378 -> 4386 bytes 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/AI/Text2Sql/Util/EchartsUtil.py b/AI/Text2Sql/Util/EchartsUtil.py index 8575b941..755d9bd1 100644 --- a/AI/Text2Sql/Util/EchartsUtil.py +++ b/AI/Text2Sql/Util/EchartsUtil.py @@ -1,6 +1,11 @@ from pyecharts.charts import Bar from pyecharts.commons.utils import JsCode - +from pyecharts import options as opts +import os +from pyecharts.charts import Bar +from pyecharts.commons.utils import JsCode +from pyecharts import options as opts +import os def generate_bar_chart(result, x_columns: list, y_columns: list, output_file: str = "bar_chart.html"): """ @@ -27,17 +32,16 @@ def generate_bar_chart(result, x_columns: list, y_columns: list, output_file: st # 提取 Y 轴数据 y_axis_data = [row[y_columns[0]] for row in result] # 目前只支持一个 Y 轴列 - - # 为每个柱状图设置不同颜色 colors = [ "#5470C6", "#91CC75", "#EE6666", "#73C0DE", "#3BA272", "#FC8452", "#9A60B4", "#EA7CCC" ] # 自定义颜色列表 + # 创建柱状图并配置布局 bar = Bar() bar.add_xaxis(x_axis_data) bar.add_yaxis( - series_name=y_columns, + series_name=y_columns[0], # 使用 y_columns 的第一个元素作为系列名称 y_axis=y_axis_data, bar_width="30%", # 控制柱宽 itemstyle_opts=opts.ItemStyleOpts( @@ -50,17 +54,15 @@ def generate_bar_chart(result, x_columns: list, y_columns: list, output_file: st ) ) bar.set_global_opts( + title_opts=opts.TitleOpts(title="学段-科目课程数量柱状图"), # 添加标题 xaxis_opts=opts.AxisOpts( name=" - ".join(x_columns), axislabel_opts=opts.LabelOpts(rotate=45), boundary_gap=True, # 开启分类间隙 splitline_opts=opts.SplitLineOpts(is_show=False) ), - yaxis_opts=opts.AxisOpts(name=y_columns), - legend_opts=opts.LegendOpts( - pos_left="10%", # 图例距左侧边界的百分比距离 - orient="vertical" # 垂直排列‌:ml-citation{ref="1,3" data="citationList"} - ) + yaxis_opts=opts.AxisOpts(name=y_columns[0]), # 使用 y_columns 的第一个元素作为 Y 轴名称 + legend_opts=opts.LegendOpts(is_show=False) # 隐藏图例 ) # 确保目标目录存在 @@ -79,13 +81,11 @@ def generate_bar_chart(result, x_columns: list, y_columns: list, output_file: st except Exception as e: print(f"生成柱状图时发生错误: {e}") - from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.commons.utils import JsCode import os - def generate_pie_chart( _data, category_columns: list, # 改为列表接收多列(如["学段","科目"]) @@ -123,7 +123,7 @@ def generate_pie_chart( pie.add( series_name="占比", data_pair=data_pairs, - radius=["30%", "55%"], # 环形布局优化‌:ml-citation{ref="2" data="citationList"} + radius=["30%", "55%"], # 环形布局优化 label_opts=opts.LabelOpts( formatter="{b}\n{d}%", # 换行显示标签和比例 position="outside", @@ -138,12 +138,7 @@ def generate_pie_chart( title=f"{' + '.join(category_columns)}分布", subtitle="数据维度:" + " → ".join(category_columns) ), - legend_opts=opts.LegendOpts( - orient="vertical", - pos_left="15%", - item_height=20, - textstyle_opts=opts.TextStyleOpts(font_size=12) - ) + legend_opts=opts.LegendOpts(is_show=False) # 不显示图例 ) # 输出文件 diff --git a/AI/Text2Sql/Util/__pycache__/EchartsUtil.cpython-310.pyc b/AI/Text2Sql/Util/__pycache__/EchartsUtil.cpython-310.pyc index ebd0c2428db93c58ecfe4124d0d0f21802063b11..ad0d147d04651a118b4a1f3850eda43995e158bf 100644 GIT binary patch delta 1444 zcmZuwTWB0r7(VCBWoKq*W+%IwY%ZINsnTw1Lv4IWYYemjp#`lNp}H?2_KeNOT{oPW zkfx+=rGm9#(QwcQLp70-3SnyrYwekN?f{EY`^PTVfxAUL* zzkPe~#-LaCJcq#VlaZg!|FZ1$(r=az6?24ZRlR1EO-eZ7dNox}Ee~}y{>RMQxEWeJ z1+Nv_&zs!l&MQXQfwa9P(p6GRm(!{otFoF_)^>0waq}7_owFNn?G+ z=E16Sm8>C8L(ADFodLAaO>kl_)+} zug#A2%h!zA{W%O{0;5G1ITb17Xjdts6WD#X2Fyu%bZ!v%olig5xcSxL%@3D1S8o3H z+3n4bmNwq}{O+r-Z@l}(=C!ZytlWlq7;z=8hQgLFr}A`NzLgr!?t|Qto;b=g3G<31 zvsP$_e8+mKkl0US!WpoZtrHh25i(JbEh`Gt6;x9eHWkQ*J(S()d)Jqj-`a%+N;rB3 zfH^v|sH?d&plmCvXPKp$hC_8~QU;F>4`bFneamd=9@;JHfE`%NHyvvJk@vFH(R`@k zQ=j>?NUh6kOB};%&_sK(68`DWR>H}1(^DcInvQGLB#@yqVje*G&CBqaP+*uJDXqyl_(8?KdV&o?|^yF1OW-;7UYfu0*L62^NaQs`X3qeC>cOBS4_#E zIJXKtIs*d(^4IirYRk)R?-BekB8}i8_yFrP(JOIS+cWESFu#EQ4*8?oqFwR_Z`|qz zL&*?D+3xS7ee#$;+$Z|MmRQl;b84E82^0p%=zh$7K>qBXXtaw0#%SlmIMGpbiGhbj zLc^Hj$~VQi*pJ&o2nP^K2nP`!L^zD_5W*0`5rm@%!w3%}cmO3QF(&y`JS9fa^e7=3 z5tdxf3Krp*j^ry)4}mZ*`8ep z)s!QlV-3}^>g*J5u>mCubt{1-whvUNDp3DDYqVD9bJcJR^g$xLqf1=sg76S=?PTuh TZN^N!#TdKCG-mwGbiefvYal@% delta 1482 zcmY*Y&2Jk;6yKShUGJ`U*N&a9=9`pK+$L>G)BZ|%4!u~Snp*=>(gPA#DlS#8T=@gcnL{N008~Q4dy_y~Tl1UWy!YnK+j+lvH2!cr zs0D#%!0+qJzb!v`5Db&XgY!eJF3w`cEf{ue-L`p(JKtK7%?<8WQdK8%i2>ZJ7*#Lw zG^Z6>H6v5=bR`|7U7zQ802#vAI?j^eS;*q^^t@5X@8PKh(lOsD37G5;li3=NpM|$d zqNsA@J-a~+qwz=;$%gu!oNMj4_l;d5*{a7OPn+;A;AuD`54^k0VCCE=yr+#ZKJVpy zyuVHPsW#LkgVk^+qcPhwcgZeEwq&r=^}K}`O=l;EUWm{0fu^}_{6M#Gg}WCs=n~(9 zYY>e$4L&lDfkP)NX2|Z%r^L7m*V72WH{5jpOLEg#gdKO?doJ!fV(VnxD2zVdqu)_7 zpc>W(m$ z_&}RN!^71KjOI3^nXlO-NOkMMToWmw9L1F*@C@=9DeltIsvP8_Zv#zeimR_DR2* z2xpyBU?^B(P_2ij$*|fEr{j(#%d!%8oaD|e&BRL(1Uk5UW)E}h`M8IOS)7%%;SIAFBr=s5Y`qD)J7$S<@d_p@ zAe=>b6(DjKupF(ZbGQx`AoDzC*0%E)coAU&;R3=G!X<>)5Ol#_$13uYEQxDqnn6H8 zM!}N$B{MmB1r7RzyoF4^tlVhmvNMoNt9NZDM2&SuwXRmIEk1#V9qa_%*_03o(O~e~$)E|#`A@nz4ild5jSsHX% o&P=t&?^NRJD2QYPz&Cu-Z~AjS@!=`Z6x*ki9#E71Ls_{0FV&+!VgLXD