Matplotlib库学习之scatter(模块)

Matplotlib库学习之scatter(模块)

一、简介

Matplotlib 是 Python 中一个强大的绘图库,其中 matplotlib.pyplot.scatter 用于创建散点图。散点图在数据可视化中广泛用于展示两个变量之间的关系。

二、语法和参数

语法
python 复制代码
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数
  • x, y: 必选参数,代表散点图中每个点的 x 坐标和 y 坐标。
  • s: 可选,标量或数组,用于控制每个点的大小。
  • c: 可选,标量或数组,用于控制每个点的颜色。
  • marker : 可选,表示散点的形状,默认为 'o'。
  • cmap : 可选,Colormap 对象或字符串,用于将标量数据映射到颜色。
  • norm : 可选,Normalize 对象,用于缩放颜色数据。
  • vmin, vmax: 可选,控制亮度标量数据的最小值和最大值。
  • alpha: 可选,标量,用于设置透明度。
  • linewidths: 可选,标量或数组,表示每个点的边缘宽度。
  • edgecolors: 可选,表示点的边缘颜色。
  • plotnonfinite : 可选,布尔值,如果为 True,会绘制非有限点(NaN 或 Inf)。
  • data: 可选,传递数据的对象。
  • kwargs : 其他传递给 matplotlib.axes.Axes.scatter 的参数。
返回值

返回一个 PathCollection 对象,表示绘制的散点图。

三、实例

3.1 绘制简单的散点图
python 复制代码
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 4, 5, 6]

# 绘制散点图
plt.scatter(x, y)
plt.title("Simple Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()

输出:

复制代码
显示一个简单的散点图,其中X轴表示1到5的值,Y轴表示2到6的值,每个点为一个圆形标记。
3.2 设置不同大小和颜色的点
python 复制代码
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 4, 5, 6]
sizes = [20, 50, 80, 200, 500]
colors = [10, 20, 30, 40, 50]

# 绘制散点图
plt.scatter(x, y, s=sizes, c=colors, cmap='viridis', alpha=0.6)
plt.title("Scatter Plot with Varying Sizes and Colors")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.colorbar()  # 添加颜色条
plt.show()

输出:

复制代码
显示一个散点图,其中每个点的大小和颜色各不相同,点的颜色根据'viridis'颜色映射来进行区分。
3.3 使用自定义标记形状和边缘颜色
python 复制代码
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 4, 5, 6]
sizes = [100] * 5
colors = [0, 1, 2, 3, 4]

# 绘制散点图
plt.scatter(x, y, s=sizes, c=colors, marker='^', edgecolors='r', linewidths=2, cmap='plasma')
plt.title("Scatter Plot with Custom Marker and Edge Color")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.colorbar()  # 添加颜色条
plt.show()

输出:

复制代码
显示一个散点图,其中每个点的标记形状为三角形,并且有红色边缘,每个点的颜色根据'plasma'颜色映射来区分。

四、注意事项

  • 当使用 c 参数进行颜色映射时,如果 c 是标量数组,则需要指定 cmap 来定义颜色映射的范围。
  • alpha 参数可以用于调整点的透明度,值越低,点越透明。
  • 当 edgecolors 为 'none' 时,点将没有边缘颜色。
相关推荐
Xudde.7 分钟前
PwnLab: init 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
我命由我1234519 分钟前
Function Calling 模型
人工智能·python·学习·ai·学习方法·ai编程·ai写作
别动我齐刘海39 分钟前
实时控制学习2
linux·c++·人工智能·学习·算法
XMXFS1 小时前
小红书推荐算法底层逻辑解析:用数据思维做内容优化
python·算法·新媒体运营·推荐算法
hans7748829681 小时前
仅根据BMI反推身高和体重?还真能做到!只需要简单的数论知识~
python·数学
海海不掉头发1 小时前
软件开发方法第七周笔记_CSDN博客
人工智能·笔记·学习·软件工程
Vae_Mars1 小时前
幂等性学习笔记
笔记·学习·wpf
追光者492 小时前
我把 55 篇自动化日志翻了一遍:最容易出事的是这 4 个地方
python·自动化运维
2601_962885722 小时前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python
打工仔折腾 AI2 小时前
LangChain 工具调用实战:从 Tool 定义到 Agent 执行链路拆解
java·前端·人工智能·后端·python·langchain·ai agent 实战