import matplotlib.pyplot as plt
import numpy as np
# 数据准备
policy_years = np.array([2021, 2022, 2023])
reduction_rate = np.array([92.14, 87.07, 100]) # 压减率
participation_rate = np.array([16.5, 36.7, 10]) # 参与率
# 创建图形
fig, ax1 = plt.subplots(figsize=(10, 6))
# 绘制压减率
ax1.set_xlabel('年份', fontsize=14)
ax1.set_ylabel('压减率 (%)', color='tab:blue', fontsize=14)
ax1.bar(policy_years - 0.2, reduction_rate, width=0.4, color='tab:blue', label='校外培训机构压减率')
ax1.tick_params(axis='y', labelcolor='tab:blue')
ax1.set_ylim(0, 100)
# 创建第二个y轴
ax2 = ax1.twinx()
ax2.set_ylabel('参与率 (%)', color='tab:red', fontsize=14)
ax2.plot(policy_years, participation_rate, color='tab:red', marker='o', label='学生参与校外培训率')
ax2.tick_params(axis='y', labelcolor='tab:red')
ax2.set_ylim(0, 50)
# 添加标题和图例
plt.title('双减政策数据分析图', fontsize=16)
fig.tight_layout()
plt.show()