From 1a99814db156cda1811a0c660905297529cb9232 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Thu, 11 Sep 2025 14:57:37 +0800 Subject: [PATCH 1/2] 'commit' --- Model/RuYuanZaiYuanCountModel.py | 65 +++++++++++++++----------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/Model/RuYuanZaiYuanCountModel.py b/Model/RuYuanZaiYuanCountModel.py index d622ba0..f314bb5 100644 --- a/Model/RuYuanZaiYuanCountModel.py +++ b/Model/RuYuanZaiYuanCountModel.py @@ -28,43 +28,38 @@ class RuYuanZaiYuanModel: @staticmethod def generate_preschool_education_config(): # 获取学前教育相关数据 - # enrollment_data, in_school_data = RuYuanZaiYuanModel.load_student_data() - # - # # 提取云南省级数据 - # yunnan_enroll = next((item for item in enrollment_data if item["area_name"] == "云南省"), None) - # - # if not yunnan_enroll: - # return {} - # - # # 提取年份数据(2015-2024) - # years = [str(year) for year in range(2015, 2025)] - # - # # 构建学前教育数据 - # urban_data = [] # 城区数据 - # town_data = [] # 镇区数据 - # rural_data = [] # 乡村数据 - # total_enroll = [] # 总入园数 - # - # for year in years: - # enroll_data = yunnan_enroll["education_data"]["preschool"].get(year, {}) - # urban_data.append(enroll_data.get("urban", 0) / 10000) # 转换为万人 - # town_data.append(enroll_data.get("town", 0) / 10000) # 转换为万人 - # rural_data.append(enroll_data.get("rural", 0) / 10000) # 转换为万人 - # # 计算总和作为总入园数,而非使用文件中的total字段 - # calculated_total = enroll_data.get("urban", 0) + enroll_data.get("town", 0) + enroll_data.get("rural", 0) - # total_enroll.append(calculated_total / 10000) # 转换为万人 + enrollment_data, in_school_data = RuYuanZaiYuanModel.load_student_data() + # 提取云南省级数据 + yunnan_enroll = next((item for item in enrollment_data if item["area_name"] == "云南省"), None) - xAxis = ["2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026"] - series_data_0 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6] - series_data_1 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6] - series_data_2 = [2.4, 5.2, 8.0, 25.4, 27.7, 73.7, 155.6] - series_data_3 = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3] + if not yunnan_enroll: + return {} + + # # 构建学前教育数据 + urban_data = [] # 城区数据 + town_data = [] # 镇区数据 + rural_data = [] # 乡村数据 + total_enroll = [] # 总入园数 + + # 提取年份数据(2015-2024) + years = [str(year) for year in range(2015, 2025)] + + for year in years: + enroll_data = yunnan_enroll["education_data"]["preschool"].get(year, {}) + urban_data.append(enroll_data.get("urban", 0) / 10000) # 转换为万人 + town_data.append(enroll_data.get("town", 0) / 10000) # 转换为万人 + rural_data.append(enroll_data.get("rural", 0) / 10000) # 转换为万人 + # 计算总和作为总入园数,而非使用文件中的total字段 + calculated_total = enroll_data.get("urban", 0) + enroll_data.get("town", 0) + enroll_data.get("rural", 0) + total_enroll.append(calculated_total / 10000) # 转换为万人 + + # 2022年基数 series_data_4 = [None, None, None, None, None, None, None, 105.6714, 105.6714, 105.6714], - data = {"xAxis_data": xAxis, - "series_data_0": series_data_0, - "series_data_1": series_data_1, - "series_data_2": series_data_2, - "series_data_3": series_data_3, + data = {"xAxis_data": years, + "series_data_0": urban_data, # 城区 + "series_data_1": town_data, # 镇区 + "series_data_2": rural_data, # 乡村 + "series_data_3": total_enroll, # 总入园数 "series_data_4": series_data_4 } return data From 21dee17af49bc64c6885e86d66701fbfa6f62ace Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Thu, 11 Sep 2025 14:59:10 +0800 Subject: [PATCH 2/2] 'commit' --- Model/RuYuanZaiYuanCountModel.py | 18 +++++++++++++++--- .../RuYuanZaiYuanCountModel.cpython-310.pyc | Bin 4778 -> 5226 bytes 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Model/RuYuanZaiYuanCountModel.py b/Model/RuYuanZaiYuanCountModel.py index f314bb5..529d581 100644 --- a/Model/RuYuanZaiYuanCountModel.py +++ b/Model/RuYuanZaiYuanCountModel.py @@ -53,14 +53,26 @@ class RuYuanZaiYuanModel: calculated_total = enroll_data.get("urban", 0) + enroll_data.get("town", 0) + enroll_data.get("rural", 0) total_enroll.append(calculated_total / 10000) # 转换为万人 - # 2022年基数 - series_data_4 = [None, None, None, None, None, None, None, 105.6714, 105.6714, 105.6714], + # 添加2022年基数的粉色折线 + base_year = "2022" + # 找到2022年在years中的索引位置 + base_index = years.index(base_year) if base_year in years else 0 + # 获取2022年的总入园数作为基数 + base_value = total_enroll[base_index] if base_index < len(total_enroll) else 0 + # 创建2022年基数折线数据(2022-2024年) + base_2022_line = [] + for i, year in enumerate(years): + # 只在2022年及之后显示基数线 + if i >= base_index: + base_2022_line.append(base_value) + else: + base_2022_line.append(None) # 2022年之前不显示 data = {"xAxis_data": years, "series_data_0": urban_data, # 城区 "series_data_1": town_data, # 镇区 "series_data_2": rural_data, # 乡村 "series_data_3": total_enroll, # 总入园数 - "series_data_4": series_data_4 + "series_data_4": base_2022_line # 2022年基数 } return data diff --git a/Model/__pycache__/RuYuanZaiYuanCountModel.cpython-310.pyc b/Model/__pycache__/RuYuanZaiYuanCountModel.cpython-310.pyc index d2d3f15168a7e2c9f595b4dbd37a63c9f3e2878e..2ea76461ddbfe44ae1c57ce5f37a044307bff739 100644 GIT binary patch delta 1668 zcmY*Z&2Jk;6rb5Id)MoaG*Qwttx4LL#%-wb*(T72L=7oHkRpYqWlOL&-fgnV#+%Nr z+t?Z_pde1bWo}iGk^_ivLpdW5e*he~?S&(9fdlFpi8teXv|hcRfA7tEZ{K?}v)>n< z4P=6J+CcCd34d98cIk)AJvrM3Y69dYNN8c!r*&$T12a;A%iF& zDv0LDj`A6bWJh(h9f|ul5;QT3mggEtDmjU6Op%LBdQ!)%@?iPR6R7OUo@YD3noIkkl@0v3pEU?L8Nh%{^5X=X{2b1CLSSDr-@yS zruJ|JJ4VB#W|W}X4qiv(bE;9Z8wql;WvRKYlBYBS>C?RO zhhK5-h%SI9s7w{ALZXb5eX2EbG`EO~xrH)@u^#;-ATme@^1K(|Q$*2ns(~pC8wQ5g zB_dJ0#Qsa_c%LQoUcdppknQ6E3V`%U9@XdBZ|YUHV5HdBdLMqye$vmS_HitS5!shW zH~UlXS6|~1ENAqyztl6}+p*pJ19rLD1h6u$Q!U$(7gS1)9oezIN!+l!76g8*R>_K8 zA-w8l?jl055(SSdu}Z4M_G4vaXk?_QS;p4PmKTa(D;>JTb6ZMj=w)^IMD2$cl}1i< zu8zK}j_tF*GdH%|NDkgk__?&wwQ8keS4wV$1il{|qPoMPd0{PTi0WG9m{Abf{!xHh zb8Qk5K0hnfO416+m2JOV_3g-YN+KfGSM1O&)!ZJN#D?Hr#c{U|`6Jt}x-t7V+s*=Y zYHS)3nsSGvND5YD5O_M|q||{s#nUh4z}_jH29F$0N+vd?gCEs?d6aZQDCy$R&f)Yi z6KV%ndjRfmauz^r_gS{3&yA9E+$j9=ob?{7C$Zy^6aS)qJ<8623yXJGsg7=AG_op!FB5=g3|7*H!})<%UMC;& z<+s>->F!e>bIOmkfTBdE*;e|MC6Vg5)L8c-cSCewC0A^6*K?vZO9OVx-XwDnT~Az? z94?oyjgwm~?SWmM7@vq0-g=W?Zjt(*^p)-7)Rs}>*JYj`r`AMxOR*N#HdX@PGFtzO zUfm@nSg?}r#^#zGdSQ&~Wd86q4<_A7x5>XCmKp}W=M-f!4H{YDAUfbJHdTPSG+L;$ zCz&+9&%VnH<}Fp+S4$Oj5C>c=WtDgi83f7(viXbT8Za`(VVuKN04v+NOJ1ea`Z|z4 vwv(O6lL_uI$>DVlZ*aKI;RXPcbJy|hgX!FtSbLKjH`woOLwJNKr@s9kBvqwY delta 1384 zcmY*Z&u<$=6!v<5cx@-PQzM#$q%EnPb{iAy*iK^Fw618QQiTX;kYJH8ll8_~vEH?2 z*AOgM5r04rFb4$ci30~zAwh0jkPtV*9c`u31E?|wE|oZN;=S2*rOax-_ujm3zIpRw z_wS3}7BlYTWGV*jLHFnVpS15Y?}\=RRtUT+hi6Ke}!3wP1R!3tnSuyL>wSP`rY zR*I}Vj17fhd?*g3q1;yPD|eNlawn!Gwl!6kR?3wI;!2rgB|v|L`&EvIHE!x0SGB|w zr~q5D^VOHw^36`zG1u%=d0QK&8qLmc$Iwc5qSVt5npz_4JC??*(_?{!W@nGLS0eh+ z6%aT?g$Hkr6--nJ=Mf|MyhUTFlEfL6E znNCAQXAov%6M!$EI|so2OI*vLqt2_s_&MsT1yS(WKT=^q6ZIsaCTTgOYxa}C{PV}p z{<`D z<@tu&?OnD0fXir&0Q3pZ@3&3I=S$F&J!*Q!zU$h$+^4(5p#muAlJ9=(=rZk7Vq3Wj zu#o4E9!{JQ(q|wWh`!sSmzb1U5-zZEW+n}U7{wIT*iPo{*B8MZWNBxYTr8LPvs}?M zl_D>YaFv1BwHyF)5U7^poAe`M(>f}wA}8tfY|Gz*ouYffG+M5I!K(a*Vf9$swRyT%-lf0MRS0STx8#6 z&!)M2xGwg4_QgvjV8GZ$#W2?D^rbM`BgT4tJ&^E9j6~?;!_ViI=bjDMQ=j0yd(CN^ z2jLdgST{HQ?oD9ps@d)B6VLJjVL)GwH1`^2!yLsiFMF6lDf>Nrnk|TIuw-HRAPf^Q}Y{;GYR$d6hHLnF5sbu zZi=6L=x2S`Cw9wnTH!^Z1=gKfe?!k1#5Vdi@y&LNQ}pC6@yr$q>nZM9xa!D<1MZu8 vhWF#&s)d^t2v(rDJ>PPj&(&GBo}U$N{c!4@pqz!8>3fXj%fb@-CI8L;cF=~m