0

0

python中如何使用matplotlib绘制折线图_Matplotlib绘制折线图入门教程

穿越時空

穿越時空

发布时间:2025-09-13 20:23:01

|

619人浏览过

|

来源于php中文网

原创

使用Matplotlib绘制折线图需导入plt,准备数据后用plt.plot()绘图并plt.show()显示;可通过参数自定义线条颜色、样式、标记;添加标题、轴标签和图例以增强可读性;处理多数据集时建议使用不同样式区分线条,并合理布局子图避免混乱。

python中如何使用matplotlib绘制折线图_matplotlib绘制折线图入门教程

在Python中,使用Matplotlib绘制折线图的核心其实非常直接,它主要围绕着

matplotlib.pyplot
模块展开。简而言之,就是准备好你的数据点,然后调用
plt.plot()
函数,Matplotlib就会帮你把这些点用线连接起来,直观地展现数据随时间或某个变量变化的趋势。这对于数据分析和可视化来说,几乎是入门级的必备技能。

解决方案

要使用Matplotlib绘制折线图,我们通常会遵循一个清晰的步骤。首先,你需要导入

matplotlib.pyplot
,约定俗成地将其命名为
plt
。接着,准备好你的X轴和Y轴数据,它们通常是列表或NumPy数组。最后,将这些数据传递给
plt.plot()
,并用
plt.show()
来显示你的图表。

一个基本的例子是这样的:

import matplotlib.pyplot as plt
import numpy as np

# 准备数据
x = np.linspace(0, 10, 100) # 从0到10生成100个均匀分布的点
y = np.sin(x) # 计算每个点的sin值

# 绘制折线图
plt.plot(x, y)

# 添加图表的基本元素
plt.title("简单的正弦曲线")
plt.xlabel("X轴数据")
plt.ylabel("Y轴数据 (sin(x))")

# 显示图表
plt.show()

我个人在初学的时候,经常会忘记

plt.show()
这一步,结果代码跑了半天什么都没看到,当时还以为是哪儿出错了。所以,记住,
plt.show()
是让你的图表“浮现”出来的关键。而
plt.plot()
其实非常智能,如果你只给它一个列表,它会默认将其作为Y轴数据,而X轴则会从0开始递增。但为了清晰和控制,我总是建议明确给出X和Y。

立即学习Python免费学习笔记(深入)”;

Matplotlib绘制折线图时,如何自定义线条样式、颜色和标记?

当我们在展示数据趋势时,仅仅是把线画出来还不够,图表的“颜值”和信息承载能力很大程度上取决于线条的细节。自定义线条的样式、颜色和添加标记,能让你的折线图瞬间提升好几个档次,也能更好地区分不同的数据系列。我发现很多初学者会忽略这些细节,导致图表看起来比较单调,甚至难以区分。

plt.plot()
函数中,你可以通过参数来控制这些视觉元素:

  • color
    :设置线条颜色,可以用颜色名称(如
    'red'
    'blue'
    ),也可以用十六进制颜色码(如
    '#FF0000'
    )。
  • linestyle
    (或简写为
    ls
    ):设置线条样式,常见的有
    '-'
    (实线)、
    '--'
    (虚线)、
    '-.'
    (点划线)、
    ':'
    (点线)。
  • linewidth
    (或简写为
    lw
    ):设置线条宽度,一个浮点数。
  • marker
    :设置数据点的标记样式,比如
    'o'
    (圆圈)、
    'x'
    (叉号)、
    '^'
    (三角形)、
    's'
    (正方形)等等。
  • markersize
    (或简写为
    ms
    ):设置标记的大小。
  • markeredgecolor
    (或简写为
    mec
    )、
    markerfacecolor
    (或简写为
    mfc
    ):分别设置标记的边框颜色和填充颜色。

举个例子,如果我们想画一条红色虚线,带有蓝色圆圈标记的折线图:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 30)
y = np.cos(x)

plt.plot(x, y, color='red', linestyle='--', linewidth=2,
         marker='o', markersize=8, markeredgecolor='blue', markerfacecolor='lightblue')

plt.title("自定义样式的余弦曲线")
plt.xlabel("X轴")
plt.ylabel("Y轴 (cos(x))")
plt.grid(True) # 我个人很喜欢加网格线,能帮助读者更好地定位数据点
plt.show()

你看,只是多加了几个参数,图表立刻就变得生动起来。我通常会根据数据的特点和想要强调的信息来选择合适的颜色和样式。比如,对比两组数据时,我会用两种对比鲜明的颜色;如果数据点本身很重要,我就会加上标记。

Warp
Warp

新一代的终端工具(内置AI命令搜索)

下载

如何在Matplotlib折线图中添加标题、轴标签和图例?

一张好的图表,除了数据本身,还需要清晰的上下文信息。标题、轴标签和图例就是这些不可或缺的“说明书”。没有它们,你的折线图可能只是一堆杂乱的线条,读者很难理解它到底在表达什么。我经常看到一些图表,数据是有了,但标题模糊,轴标签缺失,这无疑大大降低了图表的有效性。

  • plt.title()
    :用来设置图表的总标题。它应该简洁明了地概括图表内容。
  • plt.xlabel()
    :设置X轴的标签,说明X轴代表什么。
  • plt.ylabel()
    :设置Y轴的标签,说明Y轴代表什么。
  • plt.legend()
    :这是处理多条折线图的关键。当图表中有多条线时,
    plt.legend()
    会根据每条线在
    plt.plot()
    中设置的
    label
    参数来生成图例,帮助读者区分不同的数据系列。

我们来完善一下之前的正弦曲线图,给它加上这些元素:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y_sin = np.sin(x)
y_cos = np.cos(x) # 再加一条余弦曲线来演示图例

plt.plot(x, y_sin, label='正弦曲线', color='blue', linestyle='-')
plt.plot(x, y_cos, label='余弦曲线', color='green', linestyle='--')

plt.title("正弦与余弦函数的对比") # 更具描述性的标题
plt.xlabel("角度 (弧度)")
plt.ylabel("函数值")

plt.legend() # 显示图例,它会自动找到所有带有label的plot
plt.grid(True, linestyle=':', alpha=0.7) # 我还喜欢用虚线和透明度较低的网格,不那么抢眼
plt.show()

这里,

plt.legend()
的强大之处在于,你只需要在
plt.plot()
中给每条线指定一个
label
,它就能自动收集并显示出来。这比手动创建图例要方便得多。我通常还会调整图例的位置,比如
plt.legend(loc='upper right')
,以避免它遮挡到关键数据点。

处理多个数据集时,Matplotlib折线图的最佳实践是什么?

在实际的数据分析中,我们很少只处理一个数据集。通常,我们需要在同一张图表上比较多个数据系列的趋势,或者将不同的数据子集在不同的子图中展示。这对于洞察数据间的关系至关重要。我个人觉得,处理多个数据集时,最容易出现的问题就是图表变得混乱,难以阅读。

这里有一些我常用的最佳实践:

  1. 在同一张图上绘制多条线

    • 使用不同的颜色和样式:这是最基本的。确保每条线有足够的视觉区分度。
    • 添加图例:如上所述,
      plt.legend()
      是你的好帮手。
    • 选择合适的X轴范围:确保所有数据都在合理的X轴范围内显示。
    • 考虑Y轴的共享或独立:如果不同数据集的Y轴范围差异巨大,可能需要使用
      twinx()
      创建第二个Y轴,或者考虑绘制多个子图。
    import matplotlib.pyplot as plt
    import numpy as np
    
    years = np.array([2010, 2011, 2012, 2013, 2014, 2015])
    sales_region_a = np.array([100, 120, 150, 130, 180, 200])
    sales_region_b = np.array([80, 110, 140, 160, 170, 190])
    expenses = np.array([70, 85, 90, 100, 110, 120])
    
    plt.figure(figsize=(10, 6)) # 设置图表大小,让多条线有更多空间
    
    plt.plot(years, sales_region_a, label='区域A销售额', color='blue', marker='o')
    plt.plot(years, sales_region_b, label='区域B销售额', color='green', marker='x')
    plt.plot(years, expenses, label='总开销', color='red', linestyle='--', marker='s')
    
    plt.title("不同区域销售额与总开销趋势")
    plt.xlabel("年份")
    plt.ylabel("金额 (万元)")
    plt.xticks(years) # 确保X轴刻度只显示年份
    plt.legend()
    plt.grid(True, alpha=0.6)
    plt.show()
  2. 使用子图(Subplots): 当数据系列太多,或者它们的单位、尺度差异太大,以至于放在一张图上会变得拥挤或难以理解时,子图就是更好的选择。

    plt.subplot()
    plt.subplots()
    可以帮助你创建多张图表在一个画布上。

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 10, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    y3 = np.tan(x) # 可能会有无穷大,需要处理
    y4 = x**2
    
    # 创建一个2x2的子图布局
    fig, axes = plt.subplots(2, 2, figsize=(12, 8)) # fig是整个图,axes是子图的数组
    
    # 绘制第一个子图
    axes[0, 0].plot(x, y1, color='blue')
    axes[0, 0].set_title("正弦函数")
    axes[0, 0].set_xlabel("X")
    axes[0, 0].set_ylabel("sin(X)")
    axes[0, 0].grid(True)
    
    # 绘制第二个子图
    axes[0, 1].plot(x, y2, color='green')
    axes[0, 1].set_title("余弦函数")
    axes[0, 1].set_xlabel("X")
    axes[0, 1].set_ylabel("cos(X)")
    axes[0, 1].grid(True)
    
    # 绘制第三个子图 (这里为了避免tan的无穷大,我们只取一部分数据)
    x_tan = np.linspace(-1.5, 1.5, 100)
    y3_tan = np.tan(x_tan)
    axes[1, 0].plot(x_tan, y3_tan, color='red')
    axes[1, 0].set_title("正切函数")
    axes[1, 0].set_xlabel("X")
    axes[1, 0].set_ylabel("tan(X)")
    axes[1, 0].set_ylim(-10, 10) # 限制Y轴范围,让图表更清晰
    axes[1, 0].grid(True)
    
    # 绘制第四个子图
    axes[1, 1].plot(x, y4, color='purple')
    axes[1, 1].set_title("平方函数")
    axes[1, 1].set_xlabel("X")
    axes[1, 1].set_ylabel("X^2")
    axes[1, 1].grid(True)
    
    plt.tight_layout() # 自动调整子图参数,使之填充整个图像区域,并避免重叠
    plt.suptitle("多个数学函数的子图展示", y=1.02, fontsize=16) # 添加总标题
    plt.show()

我发现

plt.subplots()
plt.subplot()
更方便,因为它直接返回了
Figure
对象和
Axes
对象的数组,操作起来更面向对象。而且,
plt.tight_layout()
这个函数简直是神器,它能自动帮你调整子图之间的间距,省去了手动微调的麻烦。处理多个数据集,关键在于如何清晰地呈现信息,避免让读者感到困惑。

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

778

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

684

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

768

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

739

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1445

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

571

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

751

2023.08.11

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

70

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 21.6万人学习

Django 教程
Django 教程

共28课时 | 3.5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号