Python matplotlib 绘制散点图详解建议收藏

 更新时间:2021年12月01日 15:41:09   作者:编程简单学  
在数据统计图表中,有一种图表是散列点分布在坐标中,反应数据随着自变量变化的趋势。这篇文章主要介绍了如何通过matplotlib绘制散点图,需要的朋友可以参考一下

前言

我们在matplotlib模块学习中,发现有常用的反映数据变化的折线图,对比数据类型差异的柱状图和反应数据频率分布情况的直方图。

往期内容速看

Python用 matplotlib 绘制柱状图

Python matplotlib底层原理解析

Python matplotlib超详细教程实现图形绘制

其实在数据统计图表中,有一种图表是散列点分布在坐标中,反应数据随着自变量变化的趋势。

本期,我们将详细学习matplotlib 绘制散点图相关属性的学习,let's go~

1. 散点图概述

什么是散点图?

  • 散点图用于在水平轴和垂直轴上绘制数据点,数据以点状分布在左标系中
  • 散点图表示因变量随着自变量而变化的大致趋势
  • 散点图由多个左坐标点构成,考察坐标点的分布,判断是否存在某种关联或者分布模式
  • 对于不同类别的点,则由图表中不同形状或颜色的标记符表示
  • 散点图主要分为散点图矩阵、三维散点图、ArcGIS散点图

散点图使用场景

  • 散点图用于比较跨类别的聚合数据
  • 散点图用于分析数据线性、多项式趋势情况
  • 散点图用于四象限分析
  • 散点图用于找到数据趋势公式
  • 散点图可以为后期精确的图标进行辅助

绘制散点图步骤

  1. 导入matplotlib.pyplot模块
  2. 准备数据,可以使用numpy/pandas整理数据
  3. 调用pyplot.scatter()绘制散点图

案例展示

本次案例我们将分析某产品不同定价销售额分布情况

案例需要准备两组数据x和y轴,其中x,y轴的数据量要保持一致

x_value = np.random.randint(50,100,50)
y_value = np.random.randint(500,1000,50)

绘制散点

import matplotlib.pyplot as plt
import numpy as np
 
plt.rcParams["font.sans-serif"]=['SimHei'] plt.rcParams["axes.unicode_minus"]=False
 
x_value = np.random.randint(50,100,50)
y_value = np.random.randint(500,1000,50)
 
plt.scatter(x_value,y_value)
 
plt.title("data analyze")
plt.xlabel("销售价格")
plt.ylabel("销售额")
 
plt.show()

 2. 散点图属性

设置散点大小

关键字:s

传入数据类型为list或者数字,默认为20

设置散点颜色

关键字:c

默认颜色为蓝色

取值范围

  • 表示颜色的英文单词:如红色"red"
  • 表示颜色单词的简称如:红色"r",黄色"y"
  • RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式
  • 也可以传入颜色列表

设置散点样式

关键字:marker

系统默认为'o'小圆圈

取值还可以取:('o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd', 'P', 'X')

设置透明度

关键字:alpha

取值范围:0~1

设置散点边框

关键字: edgecolor

默认为face

取值选项:

  • "face"|"none"
  • 表示颜色的英文单词、简写或者rgb

我们结合上一节的案例,设置散点大小,散点边框为粉色,散点颜色为#88c999

size = (20*np.random.rand(50))**2
plt.scatter(x_value,y_value,s=area,c="#88c999",edgecolors="pink"

3. 添加折线散点图

我们在查看散点图时,有时候会借助折线图来辅助分析。我们继续拿第一节的数据来分析。

我们使用np.random.rand()来生成100个随机数据

x_value = 100*np.random.rand(100)
y_value = 100*np.random.rand(100)

需要借助我们高中的数学公司如sin\cos函数等(高中数学都还给老师了)

使用pyplot.plot()方法来绘制曲线图

r0 = 80
plt.scatter(x_value,y_value,c="hotpink",edgecolors="blue")
the =  np.arange(0,np.pi/2, 0.01)
plt.plot(r0*np.cos(the),r0*np.sin(the))

4. 多类型散点图

我们在观察数据的时候,会同时比较多个类型数据,因此我们可以通过颜色或者散点样式来区分表示

方式一: 使用颜色来区分不同类别时,我们需要再添加新的数据和scatter方法

x_value = 100*np.random.rand(100)
y_value = 100*np.random.rand(100)
y1_value = 100*np.random.rand(100)
 
plt.scatter(x_value,y_value, c="hotpink",edgecolors="blue",label="A产品")
 
plt.scatter(x_value,y1_value, c="#88c999", edgecolors="y",label="B产品")

方式二:我们可以使用marker来标记不同类型,例如我们使用上一节的案例再添加一个scatter()

r0 = 80
 
size = (20*np.random.rand(100))**2
 
r = np.sqrt(x_value**2+y_value**2)
area = np.ma.masked_where(r > r0,size)
area1 = np.ma.masked_where(r <= r0, size)
 
plt.scatter(x_value,y_value,s=area,c="hotpink",edgecolors="blue",label="A产品")
 
plt.scatter(x_value, y_value, s=area1, c="red", edgecolors="y",marker="^",label="B产品")
 
the =  np.arange(0,np.pi/2, 0.01)
plt.plot(r0*np.cos(the),r0*np.sin(the))

5. 颜色条散点图

在散点图表中,我们为了对每个点颜色深浅进行表示,我们可以借助cmap颜色条来进行添加

  • 颜色条显示关键字:cmap
  • 默认为viridis,可选值如accent_r,blues_r,brbg_r,greens_r等等
  • 表示每种颜色从0~100的值

当要显示颜色列表时,我们需要调用pyplot.colorbar()

例如,我们对散点图添加一个红色系的颜色列表

size = (20*np.random.rand(100))**2
color = np.random.randint(0,100,100)
plt.scatter(x_value,y_value, s=size, c=color,label="A产品",cmap="afmhot_r")
plt.colorbar()

6. 曲线散点图

散点图都是由一个一个坐标点组成的,当这些点具有一定规律时,我们可以使用散点图来绘制曲线。

我们使用scatter()绘制一个2次方的幂函数

x_value = list(range(1, 100))
y_value = [x ** 2 for x in x_value]
 
plt.scatter(x_value,y_value,c=y_value,cmap="hot_r",edgecolors="none",s=50)
 
plt.show()

总结

本期,我们对matplotlib.pyplot 绘制散点图scatter方法及相关属性进行详细的学习。对于暂时没有找到规律的数据来说,使用散点图可以快速发现数据的分布情况 

以上就是Python matplotlib 绘制散点图详解建议收藏的详细内容,更多关于Python matplotlib 绘制散点图的资料请关注脚本之家其它相关文章!

相关文章

  • python利用lxml读写xml格式的文件

    python利用lxml读写xml格式的文件

    这篇文章主要为大家详细介绍了python利用lxml读写xml格式的文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 基于OpenCv实现的人脸识别(附Python完整代码)

    基于OpenCv实现的人脸识别(附Python完整代码)

    人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,下面这篇文章主要给大家介绍了关于如何基于OpenCv实现的人脸识别,文中还附Python完整代码,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Python实现生成bmp图像的方法

    Python实现生成bmp图像的方法

    本文主要介绍了Python实现生成bmp图像的方法,对大家的学习具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Python机器学习之逻辑回归

    Python机器学习之逻辑回归

    这篇文章主要介绍了Python机器学习之逻辑回归,文中有非常详细的代码示例,对正在学习Python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • 使用torchtext导入NLP数据集的操作

    使用torchtext导入NLP数据集的操作

    这篇文章主要介绍了使用torchtext导入NLP数据集的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python一文入门Flask Blueprint SQLAlchemy部分详解

    Python一文入门Flask Blueprint SQLAlchemy部分详解

    这篇文章主要为大家介绍了Python一文入门Flask Blueprint SQLAlchemy部分详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • python Pangu自动美化中文排版工具使用探索

    python Pangu自动美化中文排版工具使用探索

    这篇文章主要为大家介绍了python Pangu自动美化中文排版工具使用探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 关于Python中compile() 函数简单实用示例详解

    关于Python中compile() 函数简单实用示例详解

    这篇文章主要介绍了关于compile() 函数简单实用示例,compile() 函数将一个字符串编译为字节代码,compile将代码编译为代码对象,应用在代码中可以提高效率,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python实现双人五子棋对局

    Python实现双人五子棋对局

    这篇文章主要为大家详细介绍了Python实现双人五子棋对局,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 基于Python实现拉格朗日插值法

    基于Python实现拉格朗日插值法

    拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。本文将利用Python语言实现这一插值法,需要的可以参考一下
    2022-12-12

最新评论