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

embedded/2025/2/21 4:19:18/

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

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

作为一名数据分析师,您受邀为环保组织提供一份全球气温变化与 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 snsplt.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.ppmy.cn/embedded/163979.html

相关文章

同步异步日志系统-日志落地模块的实现

功能:将格式化完成后的日志消息字符串,输出到指定的位置 扩展:支持同时将日志落地到不同的位置 位置分类: 1.标准输出 2.指定文件(时候进行日志分析) 3.滚动文件(文件按照时间/大小进行滚动…

如何安装虚拟机cenos7系统

在hadoop集群平台搭建中,我们需要对基础环境搭建一个平台,首先需要用到VMware虚拟机,我们需要用到的是centos7操作系统。 首先进入VMware虚拟机中,点击创建新的虚拟机,如图 之后可以直接选择下一步,此处选…

Python高级语法之selenium

目录: 1、selenium的使用2、selenium元素定位3、selenium使用功能Phantomjs模拟浏览器启动4、selenium使用功能ChromsHandless模拟浏览器启动 1、selenium的使用 2、selenium元素定位 3、selenium使用功能Phantomjs模拟浏览器启动 4、selenium使用功能ChromsHandles…

网络安全推荐的视频教程 网络安全系列

第一章 网络安全概述 1.2.1 网络安全概念P4 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。 1.2.3 网络安全的种类P5 (1…

Bug:Goland debug失效详细解决步骤【合集】

Bug:Goland debug失效详细解决步骤【合集】 今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束。网上搜寻了大量文章,最后得以解决,特此在…

通过检索增强生成技术与大语言模型推进网络事件时间线分析

摘要 网络时间线分析或取证时间线分析在数字取证和事件响应 (DFIR) 调查中至关重要。它涉及检查伪影和事件(尤其是它们的时间戳和相关元数据),以检测异常、建立相关性并重建事件的详细序列。传统方法依赖于处理结构化工…

C#项目04——递归求和

实现逻辑 利用递归,求取1~N以内的和 知识点 正常情况下,C#每条线程都会分配1MB的地址空间,因此执行递归的层次不能太深,否则就会出现溢出的风险, 业务设计 程序代码 private void button1_Click(object sender, E…

Python爬虫实战案例(1)—— 爬取百度图片 及 其它网站的网页图片

嘿,大伙~ 学了四期Python爬虫的基础内容,我们已经能够在一定程度上独当一面了,所以今天这一期我们就开始实战一下吧!~ 对前面三章的补充 前面三期里,我们讲了我们会用到的三个页面解析的方法。 那么问题来了—— 什么…