This commit is contained in:
2025-09-10 15:36:46 +08:00
parent a65b0780e6
commit 096822ce50
6 changed files with 186 additions and 242 deletions

View File

@@ -72,8 +72,8 @@ def generate_population_chart_config(year="2024"):
population_data = load_population_data()
# 筛选出州市级数据(排除县级数据)
# 正确的格式是 9 位数字,且以 000 结尾但不以 000000 结尾
cities = [item for item in population_data if len(item["area_code"]) == 9 and item["area_code"].endswith("000") and not item["area_code"].endswith("000000")]
# 正确的格式是9位数字,000结尾且第5-6位为00表示州市级
cities = [item for item in population_data if len(item["area_code"]) == 9 and item["area_code"].endswith("000") and item["area_code"][4:6] == "00"]
# 提取城市名称和人口数据
city_names = [city["area_name"] for city in cities]
@@ -89,12 +89,19 @@ def generate_population_chart_config(year="2024"):
.add_yaxis("城镇人口", urban_populations, stack="stack1")
.add_yaxis("农村人口", rural_populations, stack="stack1")
.set_global_opts(
title_opts=opts.TitleOpts(title=f"云南省各州市人口分布图({year}年)"),
title_opts=opts.TitleOpts(
title=f"云南省各州市人口分布图({year}年)",
pos_top="1%", # 调整标题位置到顶部1%
pos_left="center"
),
tooltip_opts=opts.TooltipOpts(
trigger="axis",
axis_pointer_type="shadow"
),
legend_opts=opts.LegendOpts(pos_top="5%"),
legend_opts=opts.LegendOpts(
pos_top="8%", # 调整图例位置到标题下方
pos_right="5%"
),
datazoom_opts=[opts.DataZoomOpts()],
xaxis_opts=opts.AxisOpts(
axislabel_opts=opts.LabelOpts(rotate=45)
@@ -127,8 +134,8 @@ def generate_urbanization_rate_chart_config():
population_data = load_population_data()
# 筛选出州市级数据(排除县级数据)
# 正确的格式是 9 位数字,且以 000 结尾但不以 000000 结尾
cities = [item for item in population_data if len(item["area_code"]) == 9 and item["area_code"].endswith("000") and not item["area_code"].endswith("000000")]
# 排除省级数据(如云南省530000000)和县级数据,只保留州市级数据
cities = [item for item in population_data if len(item["area_code"]) == 9 and item["area_code"].endswith("000") and item["area_code"][4:6] == "00" and item["area_code"][2:8] != "000000"]
# 提取城市名称和城镇化率数据
city_names = [city["area_name"] for city in cities]
@@ -147,9 +154,16 @@ def generate_urbanization_rate_chart_config():
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]))
line.set_global_opts(
title_opts=opts.TitleOpts(title="云南省各州市城镇化率变化趋势"),
title_opts=opts.TitleOpts(
title="云南省各州市城镇化率变化趋势",
pos_top="1%", # 调整标题位置到顶部1%
pos_left="center"
),
tooltip_opts=opts.TooltipOpts(trigger="axis"),
legend_opts=opts.LegendOpts(pos_top="5%"),
legend_opts=opts.LegendOpts(
pos_top="8%", # 调整图例位置到标题下方
pos_right="5%"
),
datazoom_opts=[opts.DataZoomOpts()],
xaxis_opts=opts.AxisOpts(
axislabel_opts=opts.LabelOpts(rotate=45)