问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Matplotlib plt.scatter()函数详解:绘制散点图的完整指南

创作时间:
作者:
@小白创作中心

Matplotlib plt.scatter()函数详解:绘制散点图的完整指南

引用
CSDN
1.
https://blog.csdn.net/u013172930/article/details/145935339

本文将详细介绍Matplotlib中的plt.scatter()函数,从基础语法到高级用法,包括如何调整点的大小、颜色、透明度等参数,以及如何使用该函数进行数据可视化。

plt.scatter()

—— 散点图(Scatter Plot)
matplotlib.pyplot.scatter()
用于绘制散点图,适用于显示数据点的分布、关系、聚类模式,常用于回归分析、聚类分析、异常值检测

1. 语法

import matplotlib.pyplot as plt
plt.scatter(x, y, s=None, c=None, marker=None, alpha=None, label=None)

主要参数

参数 作用
x X 轴数据
y Y 轴数据
s 点的大小(默认None,可以传list)
c 颜色("red","blue",或list)
marker 标记形状("o"圆点,"s"方块)
alpha 透明度(0-1)
label 点的标签(用于plt.legend())

2. 基本示例

2.1 画基本散点图

import matplotlib.pyplot as plt
# 数据
x = [1, 2, 3, 4, 5]
y = [10, 15, 7, 12, 18]
# 绘制散点图
plt.scatter(x, y)
plt.title("Basic Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()

📌作用

plt.scatter(x, y)
绘制散点

**2.2 调整点大小(

s
参数)**

sizes = [50, 100, 200, 300, 400]  # 点的大小
plt.scatter(x, y, s=sizes)
plt.show()

📌作用

s
控制点的大小(可单独设置)。

**2.3 调整颜色(

c
参数)**

colors = ["red", "blue", "green", "purple", "orange"]
plt.scatter(x, y, c=colors)
plt.show()

📌作用

c
控制点的颜色

**2.4 设置透明度(

alpha
参数)**

plt.scatter(x, y, color="blue", alpha=0.5)
plt.show()

📌作用

alpha=0.5
设置透明度(避免数据点重叠)。

3. 高级用法

**3.1 按类别着色(

c
传数组)**

import numpy as np
z = np.random.rand(len(x))  # 生成随机颜色
plt.scatter(x, y, c=z, cmap="coolwarm")
plt.colorbar()  # 显示颜色条
plt.show()

📌作用

c=z
按数值着色
cmap="coolwarm"
选择颜色方案

**3.2 自定义标记形状(

marker
)**

plt.scatter(x, y, marker="s")  # 方块
plt.show()
![](https://wy-static.wenxiaobai.com/chat-rag-image/5940999042849156083)

📌常见标记

"o"
圆点

"s"
方块

"d"
菱形

"x"
叉号

**4.

plt.scatter()
vs
plt.plot()
**

plt.scatter() plt.plot()
作用 散点图 折线图
适用数据 离散点 连续曲线

plt.plot(x, y, marker="o")
plt.show()

📌推荐

  • 点状数据
    plt.scatter()
  • 趋势分析
    plt.plot()

5. 总结


plt.scatter()
适用于可视化数据点分布,适用于回归、聚类分析

常见参数

s
调整点大小
c
按类别着色
marker="s"
改变形状
alpha=0.5
调整透明度

本文原文来自CSDN

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号