我能否不用UTF-8 编码 格式,优化以下代码:import geopandas as gpd
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
from matplotlib.patches import Patch
from mpl_toolkits.axes_grid1 import make_axes_locatable
# ===================== 配置参数 =====================
CONFIG = {
# 数据配置
"map_paths": {
"province": "C:/Users/25636/Desktop/zongheng/地图数据/省级.shp",
"river": "C:/Users/25636/Desktop/zongheng/地图数据/黄河_region.shp"
},
"data": {
"省份": ['山西', '内蒙古', '山东', '河南', '四川', '陕西', '甘肃', '青海', '宁夏'],
"2007年": [2.02, 2.11, 2.37, 2.16, 2.15, 2.07, 1.87, 1.92, 1.66],
"2014年": [2.41, 2.60, 2.59, 2.45, 2.39, 2.50, 2.28, 2.21, 2.28],
"2022年": [2.50, 2.63, 2.53, 2.53, 2.50, 2.49, 2.52, 2.41, 2.46]
},
# 可视化参数
"colors": {
"river": "#2171B5",
"base_map": "#F5F5F5",
"missing": "#D9D9D9",
"cmap": LinearSegmentedColormap.from_list("custom_green", ['#e5f5e0', '#31a354'])
},
"plot": {
"dpi": 300,
"figsize": (24, 8),
"projection": "epsg:4610" # 使用中国标准地理坐标系
}
}
# ===================== 数据加载与预处理 =====================
def load_geodata():
"""加载并处理地理数据"""
# 加载省级数据
province_gdf = gpd.read_file(CONFIG["map_paths"]["province"], encoding='utf-8')
province_gdf = province_gdf.to_crs(CONFIG["plot"]["projection"])
# 加载黄河数据
river_gdf = gpd.read_file(CONFIG["map_paths"]["river"], encoding='utf-8')
river_gdf = river_gdf.to_crs(CONFIG["plot"]["projection"])
# 创建数据框
df = pd.DataFrame(CONFIG["data"])
df["省份"] = df["省份"] + "省" # 统一为"XX省"格式
# 合并地理数据
merged = province_gdf.merge(
df,
left_on="省",
right_on="省份",
how="left"
)
return merged, river_gdf
# ===================== 可视化函数 =====================
def create_map_axis():
"""创建地图画布"""
fig, axes = plt.subplots(
1, 3,
figsize=CONFIG["pl
最新发布