机器学习入门实战 3 - 数据可视化
📌 数据可视化实战——全球气温与二氧化碳排放的关系
🚀 主题:全球气温变化与二氧化碳排放的相关性分析
作为一名数据分析师,您受邀为环保组织提供一份全球气温变化与 CO₂ 排放趋势的可视化分析报告。您的目标是:
- 全球气温是否在上升?
- 二氧化碳排放量是否在增加?
- 二者是否存在相关性?全球变暖是否可能由 CO₂ 排放引起?
通过数据可视化,我们将探索全球气候变化与人类活动的关系,看看数据能否回答这些问题!📊
📌 1. 获取数据
🔹 全球气温数据
💡 数据来源
- 我们使用 Berkeley Earth 提供的全球气温数据集
- 数据下载地址:Kaggle: Climate Change Earth Surface Temperature Data
- 文件名:
GlobalTemperatures.csv
💡 数据格式
dt,LandAverageTemperature,LandAndOceanAverageTemperature
1750-01-01,3.034,7.233
1750-02-01,3.083,7.282
...
dt
:日期LandAndOceanAverageTemperature
:全球陆地和海洋平均气温(摄氏度)
🔹 全球二氧化碳排放数据
💡 数据来源
- 我们使用 Kaggle 提供的 CO₂ 数据
- 数据下载地址:Kaggle: Global CO₂ Emissions Dataset
- 文件名:
co2_emissions.csv
💡 数据格式
Year,Emissions
1900,280
1950,310
2000,370
2022,415
Year
:年份Emissions
:全球二氧化碳排放量(百万吨)
📌 2. 读取数据并进行预处理
import pandas as pd
# 读取气温数据
df_temp = pd.read_csv("GlobalTemperatures.csv")
# 确保日期格式正确
df_temp['dt'] = pd.to_datetime(df_temp['dt'])
# 提取年份
df_temp['Year'] = df_temp['dt'].dt.year
# 按年份计算平均气温
df_temp = df_temp.groupby('Year')['LandAndOceanAverageTemperature'].mean().reset_index()
# 读取二氧化碳数据
df_co2 = pd.read_csv("co2_emissions.csv")
# 过滤 1900 年以后的数据(保证数据匹配)
df_co2 = df_co2[df_co2["Year"] >= 1900]
# 合并数据
df = pd.merge(df_temp, df_co2, left_on="Year", right_on="Year")
# 查看数据
print(df.head())
✅ 我们现在拥有了一个数据集,包含年份、全球气温和二氧化碳排放量!
📌 3. 全球气温变化趋势
💡 我们先看看全球气温是否在上升?
import matplotlib.pyplot as plt
# 解决中文显示问题
plt.rcParams["font.sans-serif"] = ["SimHei"] # Windows 和 Mac 可能需要不同字体
plt.rcParams["axes.unicode_minus"] = False # 解决负号显示问题
plt.figure(figsize=(12,6))
# 绘制全球气温趋势
plt.plot(df["Year"], df["LandAndOceanAverageTemperature"], color="red", linestyle="-", marker="o", markersize=3, label="全球平均气温")
# 设置标题和标签
plt.title("全球气温变化趋势(1900-2022)", fontsize=14)
plt.xlabel("年份", fontsize=12)
plt.ylabel("平均气温(°C)", fontsize=12)
plt.legend()
plt.grid(True)
plt.show()
✅ 观察结果
- 是否有长期上升趋势?
- 过去几十年的气温变化是否加快?
📌 4. 二氧化碳排放趋势
💡 二氧化碳排放量是否在增加?
plt.figure(figsize=(12,6))
# 绘制 CO₂ 排放趋势
plt.plot(df["Year"], df["Emissions"], color="blue", linestyle="-", marker="o", markersize=3, label="全球二氧化碳排放量")
# 设置标题和标签
plt.title("全球二氧化碳排放趋势(1900-2022)", fontsize=14)
plt.xlabel("年份", fontsize=12)
plt.ylabel("二氧化碳排放量(百万吨)", fontsize=12)
plt.legend()
plt.grid(True)
plt.show()
✅ 观察结果
- CO₂ 是否随着时间增长而增加?
- 是否有加速增长的趋势?
📌 5. 计算气温和 CO₂ 相关性
💡 如果二者有相关性,说明 CO₂ 可能与全球变暖有关!
# 计算相关性
correlation = df[['LandAndOceanAverageTemperature', 'Emissions']].corr()
print(correlation)
✅ 示例输出
LandAndOceanAverageTemperature Emissions
LandAndOceanAverageTemperature 1.000000 0.894481
Emissions 0.894481 1.000000
📌 解释
- 相关性系数 0.8944 接近 1.0,说明 CO₂ 排放量和全球气温存在高度正相关!
- 这意味着 CO₂ 增加可能推动了全球变暖。
📌 6. 使用 Seaborn 画相关性热图
Seaborn 是 Python 的一个高级数据可视化库,基于 matplotlib,用于创建更美观、统计学意义更强的图表。
💡 可视化 CO₂ 排放量与全球气温的关系
import seaborn as sns
plt.figure(figsize=(8,6))
sns.heatmap(correlation, annot=True, cmap="coolwarm", fmt=".2f")
plt.title("全球气温与二氧化碳排放的相关性", fontsize=14)
plt.show()
✅ 观察结果
- 如果颜色越深,说明相关性越强。
- 我们可以直观地看到二者是否存在联系。
📌 7. 结论
📌 本次数据分析,我们得出以下结论:
✅ 全球气温确实在上升,尤其是过去 50 年加速
✅ 全球 CO₂ 排放量在增加,尤其是工业化后期
✅ 二者高度相关,相关性系数高达 0.89,说明 CO₂ 可能是全球变暖的重要因素
📌 思考
- 全球 CO₂ 排放的主要来源是什么?(工业、交通、能源)
- 如何减少 CO₂ 排放,以减缓全球变暖?
- 未来 50 年的趋势会如何?
📌 8. 你可以尝试
- 分析不同国家的 CO₂ 排放量(哪些国家排放最多?)
- 计算 CO₂ 年增长率(排放量增长是否在加速?)
- 预测未来 50 年气温变化(使用回归模型)
📌 快来试试吧!结合气温和 CO₂ 数据,探索全球变暖的奥秘!🚀