打开豆包网址:doubao.com

提问:要做一个加拿大请罪政策和吸毒人数的关系图,如何实现

生成代码

代码如下:
import matplotlib.pyplot as pltimport pandas as pd
# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 构建数据
data = {
'年份': [2015, 2017, 2018, 2019, 2023, 2024],
'大麻使用率(%)': [12, 15, 15, 21, 26, 26],
'阿片类药物致死人数': [None, None, None, None, 7500, 7146],
'政策标注': ['无重大政策', '筹备大麻合法化', '娱乐大麻合法化', '撤销大麻轻罪记录', 'BC省小剂量豁免试点', '试点持续推进']
}
df = pd.DataFrame(data)
# 创建画布和主坐标轴
fig, ax1 = plt.subplots(figsize=(12, 6))
# 绘制大麻使用率折线
color1 = '#2E86AB'
ax1.set_xlabel('年份', fontsize=12)
ax1.set_ylabel('大麻使用率(%)', color=color1, fontsize=12)
line1 = ax1.plot(df['年份'], df['大麻使用率(%)'], color=color1, marker='o', linewidth=2, label='大麻使用率')
ax1.tick_params(axis='y', labelcolor=color1)
# 创建次坐标轴,绘制阿片类药物致死人数
ax2 = ax1.twinx()
color2 = '#A23B72'
ax2.set_ylabel('阿片类药物致死人数', color=color2, fontsize=12)
# 过滤空值
death_data = df.dropna(subset=['阿片类药物致死人数'])
line2 = ax2.plot(death_data['年份'], death_data['阿片类药物致死人数'], color=color2, marker='s', linewidth=2, label='阿片类药物致死人数')
ax2.tick_params(axis='y', labelcolor=color2)
# 标注政策
for i, txt in enumerate(df['政策标注']):
ax1.annotate(txt, (df['年份'][i], df['大麻使用率(%)'][i]), xytext=(5, 5), textcoords='offset points', fontsize=8)
# 合并图例
lines = line1 + line2
labels = [l.get_label() for l in lines]
ax1.legend(lines, labels, loc='upper left')
# 设置标题
plt.title('加拿大毒品轻罪化政策与吸毒相关数据趋势图', fontsize=14)
plt.tight_layout()
# 保存图片
plt.savefig('canada_drug_policy_trend.png', dpi=300)
plt.show()
打开pycharm,粘贴代码,并运行。
没有的可以安装,网址是:https://www.jetbrains.com/pycharm/

安装好,运行:


结论:轻罪化推动吸毒人数上升,未现显著下降