散点图,又名点图、散布图、X-Y图,是将所有的数据以点的形式展现在平面直角坐标系上的统计图表。

散点图常被用于分析变量之间的相关性。
如果两个变量的散点看上去都在一条直线附近波动,则称变量之间是线性相关的;
如果所有点看上去都在某条曲线(非直线)附近波动,则称此相关为非线形相关的;
如果所有点在图中没有显示任何关系,则称变量间是不相关的。

散点图一般需要两个不同变量,一个沿x轴绘制,另一个沿y轴绘制。
众多的散点叠加后,有助于展示数据集的“整体景观”,从而帮助我们分析两个变量之间的相关性,或找出趋势和规律。

1. 主要元素

散点图的主要元素包括:

  1. 横轴:表示自变量。
  2. 纵轴:表示因变量。
  3. 数据点:每个数据点代表一个观测值,它在坐标轴上的位置表示两个变量的对应取值。
  4. 趋势线:趋势线是通过数据点拟合出的一条线,用于显示变量之间的趋势或关联性。

2. 适用的场景

散点图适用的分析场景包括:

  • 变量关系探索:帮助我们观察和理解两个变量之间的关系。通过观察数据点的分布情况和趋势线的形状,可以判断变量之间是否存在线性关系、非线性关系或无关系。
  • 趋势分析:用于分析趋势和预测。通过观察趋势线的方向和斜率进行预测。
  • 群体分析:散点图可以帮助我们观察和识别数据点的聚类情况。
  • 异常值检测:散点图可以用于检测异常值或离群点。

3. 不适用的场景

散点图不适用的分析场景包括:

  1. 时间序列分析:散点图主要用于展示两个变量之间的关系,对于时间序列数据,通常使用折线图或其他适合展示时间变化的图表类型。
  2. 多变量分析:散点图只能展示两个变量之间的关系,对于多个变量之间的关系分析,需要使用其他图表类型,如散点矩阵、平行坐标图等。
  3. 分布分析:散点图主要关注变量之间的关系,而不是变量本身的分布情况。如果需要分析变量的分布特征,可以使用直方图、箱线图等图表类型。

4. 分析实战

散点图适合寻找两个变量之间的关系,本次分析 **空气污染 **方面的数据情况。

4.1. 数据来源

数据来源国家统计局公开的数据。
用到的两个统计数据分别是:

  1. 工业污染治理中,每年治理废气的投资额
  2. 废气中二氧化硫的每年排放量情况

整理好的数据可从下面的地址下载:
https://databook.top/nation/A0C
A0C05.csv(废气中主要污染物排放) 和 A0C0I.csv(工业污染治理投资) 两个文件。

fp = "d:/share/data/A0C05.csv"

df1 = pd.read_csv(fp)
df1

fp = "d:/share/data/A0C0I.csv"

df2 = pd.read_csv(fp)
df2

4.2. 数据清理

2022年数据是空的,所以从两个文件中分别提取 2012~2021年期间,汇总所有废气排放量(万吨)和**治理废气项目完成投资(万元) **两类数据绘制图形。

#所有废气的排放量
data_x = df1[(df1["sj"] >= 2012) &
(df1["sj"] <= 2021)]
data_x = data_x.loc[:, ["sj", "value"]]
data_x = data_x.groupby("sj").sum("value") #治理废气项目投资 A0C0I03是治理废气投资的编号
data_y = df2[(df2["sj"] >= 2012) &
(df2["sj"] <= 2021) &
(df2["zb"] == "A0C0I03")]
data_y = data_y.sort_index(ascending=False)

4.3. 分析结果可视化

with plt.style.context("seaborn-v0_8"):
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.6, 0.6]) ax.scatter(data_x["value"], data_y["value"]/10000)
ax.set_xlabel("废气排放量(万吨)")
ax.set_ylabel("治理废气项目完成投资(亿元)")

从分析结果图中来看,排放的废气量越大的时候,治理的投资费用也越高。

但是右下角红色框内有一个异常值,那个是2012年的数据。
估计那时候还不太重视环保,所以即使那时候废气排放量大,用于治理废气的投资费用也不高。

【matplotlib 实战】--散点图的更多相关文章

  1. Python数据可视化——使用Matplotlib创建散点图

    Python数据可视化——使用Matplotlib创建散点图 2017-12-27 作者:淡水化合物 Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D ...

  2. python matplotlib.pyplot 散点图详解(1)

    python matplotlib.pyplot散点图详解(1) 一.创建散点图 可以用scatter函数创建散点图 并使用show函数显示散点图 代码如下: import matplotlib.py ...

  3. python matplotlib.pyplot 散点图详解(2)

    python matplotlib.pyplot 散点图详解(2) 上期资料 一.散点图叠加 可以用多个scatter函数叠加散点图 代码如下: import matplotlib.pyplot as ...

  4. 《机器学习实战》2.2.2分析数据:使用matplotlib创建散点图

    #输出散点图 def f(): datingDataMat,datingLabels = file2matrix("datingTestSet3.txt") fig = plt.f ...

  5. 2.matplotlib画散点图

    2.1.身高和体重实例 import matplotlib.pyplot as plt height = [161,162,163,164,165] weight = [50,60,70,80,90] ...

  6. Matplotlib学习---用matplotlib画散点图,气泡图(scatter plot, bubble chart)

    Matplotlib里有两种画散点图的方法,一种是用ax.plot画,一种是用ax.scatter画. 一. 用ax.plot画 ax.plot(x,y,marker="o",co ...

  7. 使用matplotlib绘制散点图

    在matplotlib中使用函数 matplotlib.pyplot.scatter 绘制散点图,matplotlib.pyplot.scatter的函数签名如下: matplotlib.pyplot ...

  8. matplotlib绘制散点图

    参考自Matplotlib Python 画图教程 (莫烦Python)(10)_演讲•公开课_科技_bilibili_哔哩哔哩 https://www.bilibili.com/video/av16 ...

  9. matplotlib之散点图

    环境:windows系统,anaconda3 64位,python 3.6 1.初认识 基本代码如下: import numpy as np import matplotlib.pyplot as p ...

  10. 2. matplotlib绘制散点图

    与绘制直线图的唯一区别:plt.scatter # coding=utf-8 from matplotlib import pyplot as plt from matplotlib import f ...

随机推荐

  1. 获取邮箱(QQ、126、163)的客户端授权码

    获取QQ邮箱的客户端授权码 1.首先登录QQ邮箱(https://mail.qq.com),然后,点击"设置"按钮. 2.点击"账户"按钮,进入"账户 ...

  2. 浅析华为云Astro的5大关键能力技术

    摘要:本文以技术方案视角,对华为云Astro低代码平台的一些核心功能进行简要介绍. 背景介绍 低代码开发基于可视化开发的概念,结合了云原生和多终端体验技术,它可以在大多数业务场景中,帮助企业显著的提升 ...

  3. stegsolve与zsteg的使用

    zsteg 介绍:用来检测PNG和BMP中隐藏数据的工具,可以快速提取隐藏信息 使用环境:kali kali自带zsteg,可以用这个指令使用 gem install zsteg 下载完之后查看使用方 ...

  4. mysql中使用sql语句统计日志计算每天的访问量

    日志建表语句: CREATE TABLE `syslog` ( `syslogid` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) ...

  5. Mysql高级3-索引的结构和分类

    一.索引概述 1.1 索引的介绍 索引index:是帮助 Mysql 高效获取数据 的 有序的数据结构,在数据之外,数据库系统维护着的满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据 ...

  6. Singleton Pattern 单例模式简介与 C# 示例【创建型】【设计模式来了】

    〇.简介 1.什么是单例模式? 一句话解释:   单一的类,只能自己来创建唯一的一个对象. 单例模式(Singleton Pattern)是日常开发中最简单的设计模式之一.这种类型的设计模式属于创建型 ...

  7. 关于Tensorflow!目标检测预训练模型的迁移学习

    ​ 前言 关于TF的目标检测迁移学习,我一开始是想通过Tensorflow提供的API,用JS来实现的.但是官方不但没有案例,网上也没有踩坑的博客,加之我又着急要弄水印检测. 于是就在网上看了很多人用 ...

  8. Unity的IFilterBuildAssemblies:深入解析与实用案例

    Unity IFilterBuildAssemblies Unity IFilterBuildAssemblies是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目时自定义哪些程序集需要 ...

  9. phpexcel图片获取

    phpexcel图片获取常见的两种方式: require_once dirname(__FILE__) . '/../Jn/PHPExcel.php'; $filePath = "123.x ...

  10. Java语言与其环境:常见问题解答

    Java语言与其环境:常见问题解答 在本博客文章中,将深入探讨Java编程语言的特点和环境,解释一些常见的关于Java的疑问. Java语言的特点是什么? Java是一种高级编程语言,它具有以下几个主 ...