当前位置: 首页 > article >正文

机器学习入门实战 3 - 数据可视化

📌 数据可视化实战——全球气温与二氧化碳排放的关系

🚀 主题:全球气温变化与二氧化碳排放的相关性分析

作为一名数据分析师,您受邀为环保组织提供一份全球气温变化与 CO₂ 排放趋势的可视化分析报告。您的目标是:

  1. 全球气温是否在上升?
  2. 二氧化碳排放量是否在增加?
  3. 二者是否存在相关性?全球变暖是否可能由 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. 你可以尝试

  1. 分析不同国家的 CO₂ 排放量(哪些国家排放最多?)
  2. 计算 CO₂ 年增长率(排放量增长是否在加速?)
  3. 预测未来 50 年气温变化(使用回归模型)

📌 快来试试吧!结合气温和 CO₂ 数据,探索全球变暖的奥秘!🚀


http://www.kler.cn/a/551070.html

相关文章:

  • 量化噪声介绍
  • 网络安全-攻击流程-传输层
  • 11、《Web开发性能优化:静态资源处理与缓存控制深度解析》
  • LeetCode--23. 合并 K 个升序链表【堆和分治】
  • rust学习笔记2-rust的包管理工具Cargo使用
  • 深化与细化:提示工程(Prompt Engineering)的进阶策略与实践指南2
  • 5G时代的运维变革与美信监控易的深度剖析
  • 【Windows使用VNC和Cpolar实现跨平台高安全性的远程桌面在线连接】
  • VSCode 实用快捷键
  • Query String 传递 json 对象参数、map参数
  • Linux中进程的状态2
  • C#Halcon九点标定自动标定插件
  • 11-跳跃游戏
  • android uri路径转正常本地图片路径
  • 利用爬虫精准获取淘宝商品描述:实战案例指南
  • Python in Excel高级分析:一键RFM分析
  • 美国股市主要指数介绍(Major U.S. Stock Market Indexes):三大股指(中英双语)
  • 基于Flask的艺恩影片票房分析系统的设计与实现
  • 获取所有conda虚拟环境的python版本以及torch版本
  • 在Nodejs中使用kafka(二)partition消息分区策略