Matplotlib:绘制你的第一张折线图与散点图

Matplotlib入门:绘制你的第一张折线图与散点图

导语

欢迎来到 Matplotlib 的世界!对于任何使用 Python 进行数据分析或机器学习的人来说,数据可视化都是一项至关重要的技能。Matplotlib 是 Python 中最流行、最基础的可视化库,它功能强大,可以创建各种静态、动态、交互式的图表。

本教程专为初学者设计,将带你从零开始,一步步学习如何使用 Matplotlib 绘制两种最常用的图表:折线图散点图。学完本篇,你将能够轻松地将数据转化为直观的图形。


✅ 准备工作:安装 Matplotlib

在开始之前,请确保你已经安装了 Matplotlib。如果尚未安装,可以通过 pip 命令轻松安装:

bash 复制代码
pip install matplotlib numpy

我们同时安装 numpy,因为它是处理数值数据的常用库,与 Matplotlib 配合使用效果更佳。


一、绘制你的第一张折线图

折线图(Line Chart)是用于显示数据随某个连续变量(如时间、顺序)变化趋势的理想选择。

1. 创建简单数据

首先,我们使用 numpy 创建一组简单的数据作为示例。

python 复制代码
import matplotlib.pyplot as plt
import numpy as np

# 创建 x 轴数据 (0, 1, 2, ..., 9)
x = np.arange(10)
# 创建 y 轴数据 (x 的平方)
y = x**2

print("X轴数据:", x)
print("Y轴数据:", y)

2. 绘制基本折线图

有了数据后,只需几行代码即可绘制一张折线图。

python 复制代码
import matplotlib.pyplot as plt
import numpy as np

# 1. 准备数据
x = np.arange(10)
y = x**2

# 2. 创建图表
plt.figure(figsize=(8, 6))  # 设置画布大小
plt.plot(x, y)              # 绘制折线图

# 3. 添加图表信息
plt.title("我的第一张折线图 (My First Line Chart)") # 标题
plt.xlabel("X 轴")        # X轴标签
plt.ylabel("Y 轴")        # Y轴标签

# 4. 显示图表
plt.show()

运行以上代码,你将看到如下所示的图表:

3. 自定义你的折线图

Matplotlib 提供了丰富的自定义选项,让你的图表更具表现力。

  • 颜色(color):设置线条颜色。
  • 线型(linestyle) :可以是实线 -、虚线 --、点线 : 等。
  • 标记(marker) :在数据点上添加标记,如圆形 o、方形 s、星形 *
python 复制代码
# ... 接上文代码 ...

# 绘制自定义折线图
plt.figure(figsize=(8, 6))
plt.plot(
    x, y,
    color='red',          # 颜色
    linestyle='--',       # 线型
    marker='o',           # 标记
    label="y = x^2"       # 图例标签
)

# 添加网格和图例
plt.grid(True)              # 显示网格
plt.legend()                # 显示图例

plt.title("自定义折线图")
plt.xlabel("X 轴")
plt.ylabel("Y 轴")

plt.show()

二、绘制你的第一张散点图

散点图(Scatter Plot)主要用于观察两个变量之间的关系或分布情况。

1. 创建两组相关数据

我们创建两组数据,一组是随机的,另一组与第一组有一定的线性关系。

python 复制代码
# 创建 50 个随机数据点
np.random.seed(42) # 设置随机种子以保证结果可复现
x_scatter = np.random.rand(50) * 10
y_scatter = 2 * x_scatter + np.random.randn(50) * 2 # y = 2x + 噪声

2. 绘制基本散点图

使用 plt.scatter() 函数来绘制散点图。

python 复制代码
# ... 接上文代码 ...

# 绘制基本散点图
plt.figure(figsize=(8, 6))
plt.scatter(x_scatter, y_scatter)

plt.title("我的第一张散点图 (My First Scatter Plot)")
plt.xlabel("变量 X")
plt.ylabel("变量 Y")
plt.grid(True)

plt.show()

3. 自定义你的散点图

散点图同样可以自定义,例如改变点的大小、颜色,甚至可以根据第三个变量来映射颜色。

  • 大小(s):设置点的大小。
  • 颜色(c):可以是一个颜色字符串,也可以是一个数值序列,用于颜色映射。
  • 透明度(alpha):设置点的透明度。
python 复制代码
# ... 接上文代码 ...

# 创建一个颜色变量
colors = np.random.rand(50)
# 创建一个大小变量
sizes = 1000 * np.random.rand(50)

# 绘制自定义散点图
plt.figure(figsize=(10, 6))
scatter = plt.scatter(
    x_scatter, y_scatter,
    c=colors,           # 根据 colors 变量映射颜色
    s=sizes,            # 根据 sizes 变量设置大小
    alpha=0.6,          # 设置透明度
    cmap='viridis'      # 使用 viridis 颜色映射方案
)

# 添加颜色条
plt.colorbar(scatter, label="颜色强度")

plt.title("自定义散点图")
plt.xlabel("变量 X")
plt.ylabel("变量 Y")

plt.show()

🤖 AI 助力你的编程之路

在学习和工作中,强大的 AI 工具能极大地提升我们的效率。这里向你推荐一款优秀的 AI 助手,或许能为你的编程和创作带来新的灵感。

😳 0v0 AI 助手推荐、官网:https://0v0.pro

  • 🆓 开源模型全免费:Llama、Qwen、Deepseek 等,无需付费即可体验。
  • 😲 基础模型全免费:gpt-4o、o4-mini、gpt-5-mini 等,满足日常开发需求。
  • ♾️ 对话真正无限制:不限时间、不限次数,尽情探索 AI 的能力。
  • 🫡 每周免费旗舰模型:每周解锁一款旗舰模型(如本周的 gpt-5),免费使用!

🗨️ 需要接入 AI API?

如果你是开发者,希望将 AI 能力集成到自己的应用中,可以考虑以下服务:

按量计算、官网:https://llm-all.pro
  • 😊 超高性价比:OpenAI、Claude、Gemini 等模型低至官方 1 折。
  • 🤓 国内模型覆盖广:豆包、千问、DeepSeek、Kimi 等 2-6 折。
  • ☺️ 模型种类齐全,满足各类需求。
按次计算、官网:https://fackai.chat
  • 全模型覆盖,1 元可购 100 次,性价比极高。

总结

恭喜你!通过本教程,你已经掌握了使用 Matplotlib 绘制折线图和散点图的基本方法,并学会了如何对它们进行自定义,以更好地展示你的数据。

回顾一下关键点:

  1. 导入库import matplotlib.pyplot as plt
  2. 折线图 :使用 plt.plot(),适合展示趋势。
  3. 散点图 :使用 plt.scatter(),适合观察变量关系。
  4. 图表元素plt.title(), plt.xlabel(), plt.ylabel(), plt.legend(), plt.grid()
  5. 显示图表 :最后一定要调用 plt.show()

这只是 Matplotlib 功能的冰山一角。继续探索,你将能创造出更多更复杂的图表。希望这篇教程能为你打开数据可视化的大门!

如果你觉得这篇文章对你有帮助,请不要吝啬你的 点赞 👍收藏 ⭐!你的支持是我创作的最大动力!

相关推荐
AC赳赳老秦2 小时前
OpenClaw email技能:批量发送邮件、自动回复,高效处理工作邮件
运维·人工智能·python·django·自动化·deepseek·openclaw
zhaoshuzhaoshu2 小时前
Python 语法之数据结构详细解析
python
AI问答工程师2 小时前
Meta Muse Spark 的"思维压缩"到底是什么?我用 Python 复现了核心思路(附代码)
人工智能·python
zfan5203 小时前
python对Excel数据处理(1)
python·excel·pandas
小饕3 小时前
我从零搭建 RAG 学到的 10 件事
python
老歌老听老掉牙3 小时前
PyQt5+Qt Designer实战:可视化设计智能参数配置界面,告别手动布局时代!
python·qt
格鸰爱童话4 小时前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习
悟空爬虫-彪哥4 小时前
VRChat开发环境配置,零基础教程
python
数据知道4 小时前
《 Claude Code源码分析与实践》专栏目录
python·ai·github·claude code·claw code
曲幽4 小时前
FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了!
python·vue·upload·fastapi·web·blob·chunk·spark-md5