Python 数据分析三剑客之 Matplotlib(五):散点图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个企业级项目。


Matplotlib 系列文章:

  • Python 数据分析三剑客之 Matplotlib(一):初识 Matplotlib 与其 matplotibrc 配置文件
  • Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性
  • Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性
  • Python 数据分析三剑客之 Matplotlib(四):线性图的绘制
  • Python 数据分析三剑客之 Matplotlib(五):散点图的绘制
  • Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制
  • Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制
  • Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制
  • Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制
  • Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制
  • Python 数据分析三剑客之 Matplotlib(十一):最热门最常用的 50 个图表【译文】

另有 NumPy、Pandas 系列文章已更新完毕,欢迎关注:

  • NumPy 系列文章:https://itrhx.blog.csdn.net/category_9780393.html
  • Pandas 系列文章:https://itrhx.blog.csdn.net/category_9780397.html

推荐学习资料与网站(博主参与部分文档翻译):

  • NumPy 官方中文网:https://www.numpy.org.cn/
  • Pandas 官方中文网:https://www.pypandas.cn/
  • Matplotlib 官方中文网:https://www.matplotlib.org.cn/
  • NumPy、Matplotlib、Pandas 速查表:https://github.com/TRHX/Python-quick-reference-table

文章目录

    • 【1x00】方法描述
    • 【2x00】简单示例
    • 【3x00】多条数据
    • 【4x00】设置颜色 / 样式 / 图例
    • 【5x00】指定位置显示文本注释
    • 【6x00】随机数据散点图
    • 【7x00】随机颜色与色条
    • 【8x00】不同图像之间的层级调整
    • 【9x00】框选部分数据


这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/105914929
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【1x00】方法描述

matplotlib.pyplot.scatter() 方法可用于绘制散点图。

本文用到的其他图像属性可参考前面的两篇文章:

《Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性》
《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图等基本图像属性》

基本语法:matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, alpha=None, linewidths=None, edgecolors=None, \*\*kwargs)

参数描述
x,y数据位置,标量或类似数组的形式
s标记的大小,以磅为单位,默认 rcParams['lines.markersize'] ** 2,即 6**2=36
color / c标记的颜色,可以是单个颜色或者一个颜色列表
支持英文颜色名称及其简写、十六进制颜色码等,更多颜色示例参见官网 Color Demo
marker标记的样式,默认为 rcParams["scatter.marker"] = 'o',更多样式参见表一
cmap将浮点数映射成颜色的颜色映射表,即一个 Colormap 实例或注册的颜色表名,仅当 c 是浮点数数组时才使用 cmap
alpha标记的透明度,float 类型,取值范围:[0, 1],默认为 1.0,即不透明
linewidths标记边缘的线宽,默认为 rcParams["lines.linewidth"] = 1.5
edgecolors标记边缘的颜色,可以是单个颜色或者一个颜色列表
支持英文颜色名称及其简写、十六进制颜色码等,更多颜色示例参见官网 Color Demo
表一:marker 标记的样式
标记描述
"."
","像素点
"o"圆圈
"v"倒三角
"^"正三角
"<"左三角
">"右三角
"1"倒三叉星
"2"正三叉星(类似奔驰车标形状)
"3"左三叉星
"4"右三叉星
"8"八边形
"s"正方形
"p"五边形
"P"填充的加号(粗加号)
"+"加号
"*"星形
"h"六边形(底部是角)
"H"六边形(底部是边)
"x"x 号
"X"填充的 x 号(粗 x 号)
"D"粗菱形(对角线相等)
"d"细菱形(对角线不等)
"|"垂直线
"_"水平线
0水平线靠左
1水平线靠右
2垂直线靠上
3垂直线靠下
4左三角(比 "<" 更细)
5右三角(比 ">" 更细)
6正三角(比 "^" 更细)
7倒三角(比 "v" 更细)
8左三角(比 "<" 更细,靠左显示)
9右三角(比 ">" 更细,靠右显示)
10正三角(比 "^" 更细,靠上显示)
11倒三角(比 "v" 更细,靠下显示)
"None" / " " / ""无样式
'$...$'支持 LaTeX 数学公式,表达式用美元符号包围起来

【2x00】简单示例

import numpy as np
import matplotlib.pyplot as pltx = np.arange(0, 10, 1)
y = np.array([3, 8, 1, 5, 7, 2, 3, 4, 5, 7])
plt.scatter(x, y)plt.show()

01

【3x00】多条数据

绘制多条数据,设置不同数据,然后多次调用 plt.scatter() 函数即可,不同数据的线条颜色会不同,系统随机,可单独指定不同颜色。

import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = np.arange(-2*np.pi, 2*np.pi, 1)
y1 = np.sin(3*x)/x
y2 = np.sin(2*x)/x
y3 = np.sin(1*x)/x
plt.title('多数据散点图示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')plt.scatter(x, y1)
plt.scatter(x, y2)
plt.scatter(x, y3)plt.show()

02

【4x00】设置颜色 / 样式 / 图例

import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = np.arange(-2*np.pi, 2*np.pi, 1)
y1 = np.sin(3*x)/x
y2 = np.sin(2*x)/x
y3 = np.sin(1*x)/x
plt.title('散点图自定义样式示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')plt.scatter(x, y1, color='g', s=30, label='(x, y1)')              # 默认绿色样式
plt.scatter(x, y2, color='r', s=40, marker='d', label='(x, y2)')  # 红色菱形
plt.scatter(x, y3, color='b', s=50, marker='2', label='(x, y3)')  # 蓝色正三叉星plt.legend(framealpha=0)    # 显示图例,设置为全透明plt.show()

03

【5x00】指定位置显示文本注释

matplotlib.pyplot.annotate() 方法可以在指定位置显示文本注释,参数解释常见前文:
《Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性》

应用举例:

import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x = [0.13, 0.22, 0.39, 0.59, 0.68, 0.74, 0.93]
y = [0.75, 0.34, 0.44, 0.52, 0.80, 0.25, 0.55]plt.title('散点图添加文本注释示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')
plt.xlim([0, 1])       # 设置 x 轴刻度的范围
plt.ylim([0, 1])       # 设置 y 轴刻度的范围plt.scatter(x, y, marker='o', s=50)
for m, n in zip(x, y):plt.annotate('(%s,%s)' % (m, n),xy=(m, n),xytext=(0, -10),textcoords='offset points',ha='center',      # 点在注释文本的中心va='top')         # 点在注释文本的上方plt.show()

04


这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/105914929
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

【6x00】随机数据散点图

随机数据可以用 numpy 的 random 模块来实现。

numpy.random.rand(d0, d1, …, dn):根据给定维度生成 [0,1) 之间的数据。

numpy.random.randn(d0, d1, …, dn) :返回一个或一组具有标准正态分布的样本。

numpy.random.randint(low, high, size):返回随机整数,范围区间为 [low,high),size 为数组维度大小

应用举例:

import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']N = 1000
x = np.random.randn(N)
y = np.random.randn(N)plt.title('散点图随机数据示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')
plt.scatter(x, y, alpha=0.5)plt.show()

05

【7x00】随机颜色与色条

import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']N = 1000
x = np.random.randn(N)
y = np.random.randn(N)color = np.random.rand(N)
size = np.random.rand(N) * 1000plt.figure(figsize=(8.4, 5.8))    # 设置画布大小 840x580
plt.title('散点图随机大小颜色示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')
plt.scatter(x, y, c=color, s=size, alpha=0.5)plt.show()

06

可以用 pyplot.colorbar() 方法绘制颜色对照条。

基本语法:matplotlib.pyplot.colorbar([mappable=None, cax=None, ax=None, **kw])

部分参数解释如下表,其他参数,如长度,宽度等请参考官方文档。

参数描述
mappable要设置色条的图像对象,该参数对于 Figure.colorbar 方法是必需的,但对于 pyplot.colorbar 函数是可选的
cax可选项,要绘制色条的轴
ax可选项,设置色条的显示位置,通常在一个画布上有多个子图时使用
**kw可选项,其他关键字参数,参考官方文档
import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']N = 1000
x = np.random.randn(N)
y = np.random.randn(N)color = np.random.rand(N)
size = np.random.rand(N) * 1000plt.figure(figsize=(8.4, 5.8))
plt.title('散点图颜色对照条示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')
plt.scatter(x, y, c=color, s=size, alpha=0.5)
plt.colorbar()plt.show()

07

【8x00】不同图像之间的层级调整

zorder 参数用于设置不同图像之间的层级关系,数字越大,所处的层级越大,即显示越靠上。

未设置 zorder 参数前:

import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x1 = np.arange(-2*np.pi, 2*np.pi, 0.01)
y1 = np.sin(3*x1)/x1
x2 = np.arange(-2*np.pi, 2*np.pi, 1)
y2 = np.sin(3*x2)/x2plt.title('不同图像之间层级调整示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')plt.plot(x1, y1, c='b', linewidth=3.5, label='线性图')
plt.scatter(x2, y2, c='r', s=40, label='散点图')
plt.legend()plt.show()

08

设置 zorder 参数后:

import numpy as np
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']x1 = np.arange(-2*np.pi, 2*np.pi, 0.01)
y1 = np.sin(3*x1)/x1
x2 = np.arange(-2*np.pi, 2*np.pi, 1)
y2 = np.sin(3*x2)/x2plt.title('不同图像之间层级调整示例')
plt.xlabel('x 轴')
plt.ylabel('y 轴')plt.plot(x1, y1, zorder=1, c='b', linewidth=3.5, label='线性图')
plt.scatter(x2, y2, zorder=2, c='r', s=40, label='散点图')
plt.legend()plt.show()

09

【9x00】框选部分数据

有时候我们希望能够框选一部分数据来强调其重要性,matplotlib.patches.Polygon() 方法的作用是生成不规则的多边形补丁,matplotlib.patches 还有另外的方法可以生成矩形、圆形等其他图形,具体参见前面的文章《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性》,生成补丁之后,通过 axes.add_patch() 方法将其添加到绘图区(axes)即可。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpathesplt.rcParams['font.sans-serif'] = ['Microsoft YaHei']plt.figure(figsize=(8.4, 5.8))x1 = np.arange(0, 1000, 10)
y1 = np.random.randint(0, 1000, 100)
x2 = np.arange(0, 500, 10)
y2 = np.random.randint(200, 800, 50)
x3 = np.random.randint(50, 800, 80)
y3 = np.random.randint(50, 800, 80)
x4 = np.array([0, 100, 300, 400, 350, 500, 450, 367, 420, 490])
y4 = np.array([267, 800, 453, 500, 600, 420, 380, 503, 390, 600])plt.title('散点图数据框选示例', fontsize=15)
plt.xlabel('x 轴', fontsize=15)
plt.ylabel('y 轴', fontsize=15)
plt.scatter(x1, y1, c='r', s=50, alpha=0.7, label='RED')
plt.scatter(x2, y2, c='b', s=100, alpha=0.7, label='BLUE')
plt.scatter(x3, y3, c='g', s=150, alpha=0.7, label='GREEN')
plt.scatter(x4, y4, c='y', s=250, alpha=0.7, label='YELLOW')
plt.legend(loc='upper right', borderpad=1, edgecolor='k', framealpha=1, labelspacing=1)Polygon_point = [[100, 800], [0, 267], [500, 420], [490, 600]]        # 多边形补丁的顶点坐标
polygon = mpathes.Polygon(Polygon_point, color='#FF69B4', alpha=0.3)  # 绘制补丁,框选部分数据
ax = plt.gca()          # 获取当前绘图区(gca = Get Current Axes)
ax.add_patch(polygon)   # 将补丁添加到当前绘图区plt.show()

10


这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/105914929
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hadoop集群-格式化namenode节点后,从节点的datanode不能启动,或者是datanode启动到主节点上。

进行二次namenode格式化前&#xff0c;请注意&#xff1a; hadoop namenode -format进行着一步前&#xff0c;要把以前格式化的内容删掉&#xff0c;如果&#xff0c;你的路径是在hadoop文件夹内&#xff0c;那么直接格式化即可&#xff0c;如果是在外部创建的文件夹&#xff…

Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hive环境搭建(完整版)-配置

Hive部署&#xff1a; 前提&#xff1a; 在安装Hive之前&#xff0c;要求先预装&#xff1a; - 安装JDK 8 - 安装Hadoop-2.7.7 - 安装MySQL 5.6.x&#xff01;&#xff01;&#xff01;我这里主节点叫chun1&#xff0c;根据自己的进行修改 一、安装 1. 下载hive&#xff0c…

Magento微信支付接口开发小记

姗姗来迟的Magento微信支付接口插件 半年之前&#xff0c;有朋友网站需要接入微信支付&#xff0c;是Magento站&#xff0c;于是花费了近二周时间&#xff0c;研究微信开发文档、示例代码&#xff0c;并初步制作了个支付模块&#xff0c;不巧的是&#xff0c;朋友的微信支付接…

VMware安装出错-无法安装服务“VMware Authorization Service”,请确保您有足够的权限安装系统服务;centos7网络服务不可用,主ip地址:网络信息不可用

今天遇到一个bug&#xff0c;VMware突然网络服务不可用了&#xff0c;虚拟机里右上角有网络但是点开不显示网络的连接信息。也不能上网&#xff0c;不能ping通外网&#xff08;百度&#xff09; VMware下显示 主ip地址&#xff1a;网络信息不可用 尝试了重启网络&#xff0c;重…

Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

访问网络共享时出现“拒绝访问”

今天公司副总说要我连接一下前面的打印机&#xff0c;二话不说&#xff0c;屁颠屁颠的就到现场了。虽然是简单的活&#xff0c;但也得去不是。 到老总计算机上 开始--运行 \\192.168.0.45 &#xff08;装有打印的计算机&#xff0c;OS是XP系统&#xff01;&#xff09; 结果出…

zookeeper集群自动启动-关闭-查询的shell脚本

由于zookeeper启动需要在每台虚拟机都进行zkServer.sh start&#xff0c;很不方便&#xff0c;由此写个shell脚本来进行一个命令全部启动。 前提&#xff1a;配置好ssh免密登录&#xff0c;并且每台虚拟机都可以互通&#xff0c;没配置好的可以看下我的hadoop集群搭建里有免密…

Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Office365完整离线安装包下载及自定义安装教程

Office365部署方法 概要提示&#xff1a; 全文内容归结起来其实也就2条命令 下载&#xff1a;D:\365\setup.exe /download D:\365\Configuration.xml&#xff08;此命令为1条&#xff0c;不可以拆分为2行输入&#xff09; 安装&#xff1a;D:\365\setup.exe /configure D:\3…

Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】中国式管理最有趣的地方,可能就在这些关键词之中

曾仕强老先生的中国式管理&#xff0c;就像中医中药&#xff0c;你说他对吗&#xff1f;根本不符合现代的科学逻辑&#xff0c;有些甚至荒诞。然而&#xff0c;即便这样&#xff0c;依然能西医所不能&#xff0c;这就是他的魅力。让我们一探究竟&#xff0c;对也好&#xff0c;…

Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hbase学习-一步一步慢慢来

HBASE是一个分布式系统 其中有一个管理角色&#xff1a; HMaster(一般2台&#xff0c;一台active&#xff0c;一台backup)&#xff08;我用的五台&#xff09; 其他的数据节点角色&#xff1a; HRegionServer(很多台&#xff0c;看数据容量) 1.安装可以参考我的Hbase安装&…

Python 数据分析三剑客之 Matplotlib(十一):最常用最有价值的 50 个图表

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Windows Server 2012 R2 双网卡绑定

双网卡绑定主要有以下两点好处&#xff1a; 1、实现网络容错&#xff1a;主主模式和主被模式 2、带宽聚合 首先准备工作需要两台虚拟机&#xff0c;Server01是目标服务器&#xff0c;需要有两块网卡&#xff0c;并且清空两块网卡的现有配置&#xff0c;Server02作为测试机。 …

解决Hbase输入list,创建表报错,输入status可以,org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: S

今天恢复了一下快照&#xff0c;然后hbase出现了问题 2019-08-25 00:59:55,810 INFO [RpcServer.default.FPBQ.Fifo.handler28,queue1,port16000] client.RpcRetryingCallerImpl: ,1 is not online on chun4,16020,1566665941494at org.apache.hadoop.hbase.regionserver.HRe…

Python 数据分析三剑客之 Pandas(一):认识 Pandas 及其 Series、DataFrame 对象

CSDN 课程推荐&#xff1a;《迈向数据科学家&#xff1a;带你玩转Python数据分析》&#xff0c;讲师齐伟&#xff0c;苏州研途教育科技有限公司CTO&#xff0c;苏州大学应用统计专业硕士生指导委员会委员&#xff1b;已出版《跟老齐学Python&#xff1a;轻松入门》《跟老齐学Py…

【转】通过第三方工具体验Microsoft Graph

上一篇文章我介绍了如何利用官方提供的Graph 浏览器快速体验Microsoft Graph强大功能&#xff0c;这是极好的起点。官方的Graph浏览器力图用最简单的方式帮助您使用Microsoft Graph&#xff0c;为此也隐藏了很多细节。为了帮助大家更好地理解Microsoft Graph的工作原理&#xf…

【转】通过Graph 浏览器体验Microsoft Graph

上一篇介绍了Microsoft Graph的基本概念&#xff0c;接下来我们快速体验一下Microsoft Graph到底能做什么&#xff1f; 为了帮助开发人员直观和快速体验Microsoft Graph的魅力&#xff0c;官方提供了一个专门的工具&#xff0c;叫做Graph 浏览器&#xff08;Graph Explorer&am…