完整代码如下,请帮忙解析问题文件1:src/utils.py
python
复制
import pandas as pd
def load_employee_data():
"""加载并预处理就业数据"""
df = pd.read_csv('../data/employee.csv', encoding='utf-8-sig')
# 提取年份
df['年份'] = df['指标'].str.extract('(\d+)').astype(int)
# 列重命名
df = df.rename(columns={
'就业人员(万人)': 'total',
'第一产业就业人员(万人)': 'primary',
'第二产业就业人员(万人)': 'secondary',
'第三产业就业人员(万人)': 'tertiary'
})
return df
文件2:src/plot_functions.py
python
复制
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.animation import FuncAnimation
def set_chinese_font():
"""设置中文字体"""
plt.rcParams['font.sans-serif'] = ['SimHei'] # Windows
plt.rcParams['axes.unicode_minus'] = False
def plot_question1():
"""题目1:三条函数曲线"""
x = np.linspace(-2*np.pi, 2*np.pi, 400)
beta = 2
y1, y2, y3 = x**2, np.cos(2*x), np.sin(beta*x)
# 主图
plt.figure(figsize=(10, 6))
plt.plot(x, y1, 'r--', label=r'$y_1 = x^2$')
plt.plot(x, y2, 'b:', label=r'$y_2 = \cos(2x)$')
plt.plot(x, y3, 'g-', label=r'$y_3 = \sin(2x)$')
plt.legend()
plt.title('题目1 - 函数曲线对比')
plt.savefig('../output/q1_main.png')
# 子图
fig, axs = plt.subplots(3, 1, figsize=(10, 12))
for i, (y, title) in enumerate(zip([y1, y2, y3], ['$y_1$', '$y_2$', '$y_3$'])):
axs[i].plot(x, y)
axs[i].set_title(title)
plt.savefig('../output/q1_subplots.png')
def plot_question2():
"""题目2:正弦函数曲线"""
x = np.linspace(0, 2*np.pi, 200)
y = np.sin(x)
plt.figure(figsize=(8, 5))
plt.plot(x, y, 'purple', label=r'$y = \sin(x)$')
plt.xticks(np.arange(0, 2.1*np.pi, np.pi/2),
['0', r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])
plt.legend()
plt.title('题目2 - 正弦曲线')
plt.savefig('../output/q2_sin.png')
def plot_question3(df):
"""题目3:趋势分析图"""
plt.figure(figsize=(14, 7))
markers = {'primary': ('green', '^'),
'secondary': ('blue', 's'),
'tertiary': ('
最新发布