Matplotlib scatter绘制散点图的方法实现

顾言
顾言
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍如何使用Python的Matplotlib库绘制散点图。内容涵盖从基础安装到复杂图表的进阶技巧,包括修改散点颜色、多组数据合并显示及添加图例。重点解析scatter函数的核心参数如s(大小)、c(颜色)、marker(样式)及alpha(透明度),并提供完整代码示例与参数说明,帮助读者快速掌握数据可视化技能。

Matplotlib安装与环境准备

前言

考虑到部分读者可能尚未安装matplotlib,此处提供常用的安装指南。请按Win键 + R组合键,输入cmd以打开命令行工具,随后在命令行中输入pip install matplotlib执行安装。若看到安装成功的提示,即表示环境配置完成。

基础散点图绘制

一、简单散点图

1.代码


import numpy as np
import matplotlib.pyplot as plt

#生成散点数据
n = 1024
X = np.random.normal(0,1,n)
Y = np.random.normal(0,1,n)

plt.scatter(X,Y)  #输入散点数据
plt.show()     #显示散点图

2.运行结果

3.注释

np.random.normal(0,1,n)用于生成符合正态分布的数据样本。虽然术语看似专业,但当前只需理解其功能是生成一组示例数据即可。

(以下内容供了解,无需深入,后续可深入学习) np.random.normal(size,loc,scale) 参数含义: loc:此概率分布的均值(对应着整个分布的中心centre) scale:此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高) size:输出的shape,默认为None,只输出一个值

复杂散点图:颜色、多图与图例

二、复杂的散点图

相较于基础散点图,此处进行了以下调整:

1.修改散点的颜色 2.将三组散点数据放到一张图上 3.添加散点图图例

1.代码


import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

for color in ['red', 'green', 'purple']:      #每一次循环都会产生一组散点数据
  n = 400
  x = np.random.normal(0,1,n)
  y = np.random.normal(0,1,n)
  ax.scatter(x, y, c=color, label=color ,alpha=0.5)

ax.legend()                     #显示图例

plt.show()

2.运行结果

3.注释

1.fig, ax = plt.subplots()实现了将多组数据整合至同一张图表显示的功能,可简单理解为多图合一操作。

其返回值 fig: matplotlib.figure.Figure 对象 ax:子图对象( matplotlib.axes.Axes)或者是他的数组


#函数定义看看就好了
def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,
       subplot_kw=None, gridspec_kw=None, **fig_kw):
  fig = figure(**fig_kw)
  axs = fig.subplots(nrows=nrows, ncols=ncols, sharex=sharex, sharey=sharey,
            squeeze=squeeze, subplot_kw=subplot_kw,
            gridspec_kw=gridspec_kw)
  return fig, axs

2.ax.scatter(x, y, c=color, label=color ,alpha=0.5)中的c指定散点的颜色,label定义图例中的标签文本,alpha控制散点的透明度。通过设置alpha值在0到1之间,可以灵活调整散点的透明程度。

scatter参数详解与实战

四、散点图参数讲解

本节首先通过代码直观展示scatter常用参数的效果。

1.代码


import numpy as np
import matplotlib.pyplot as plt

n = 30

x = np.random.normal(0,1,n)
y = np.random.normal(0,1,n)

plt.subplot(321)
plt.scatter(x, y, s=80, c='red', marker='^')

plt.subplot(322)
plt.scatter(x, y, s=80, c='green', marker=(7, 1))

plt.subplot(323)
plt.scatter(x, y, s=1, c='purple', marker=(6, 1))

plt.subplot(324)
plt.scatter(x, y, s=400, c='red', marker=(5, 1))

plt.subplot(325)
plt.scatter(x, y, s=80, c='green', marker='+')

plt.subplot(326)
plt.scatter(x, y, s=80, c='purple', marker=(5, 2))

plt.show()

2.运行结果

3.参数说明

fig, axes = plt.subplots(23):表示一次性在figure上创建成2*3的网格,plt.subplot(321)代表在6个网格中的第一个网格创建图像,plt.subplot(322)代表在6个网格中的第二个网格创建图像,以此类推。对于这个函数的其他参数,我会在之后再详细讲解,把时间花在刀刃上,花最少的时间学习最有用的东西。

plt.scatter(x, y, s=80, c='purple', marker=(5, 2))中的s代表散点的大小,参照第三和第四张图。marker表示散点的样式,元组表示法参照第二、四、六张图,也可以取特定的符号作为marker的值,参照第一、五张图。

截图取自官网。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。