Matplotlib 折线图plot()所有用法详解

1. Matplotlib简介

Matplotlib是一个Python 2D绘图库,可以生成各种静态图形、动态图像和交互式界面。它可以与Python和NumPy一起使用,并提供了一种方便而快速的方法来可视化数据。

Matplotlib中的函数用于绘制各种图表,其中包括折线图、柱形图、条形图、饼图等。可以将其与Python的其他第三方库(如NumPy和SciPy)结合使用,以及与Python的标准图形界面工具包(如Tkinter)结合使用。你甚至可以将Matplotlib与PyQt、wxPython、PyGTK等第三方GUI工具包结合使用,以生成自己的用户界面。

2. 折线图plot()

折线图plot()是Matplotlib中最常用的函数之一。它可以绘制出一组点之间的连线,形成一条平滑的曲线。在Matplotlib中,我们可以使用plot()函数来绘制折线图。

2.1 基本用法

使用plot()函数,我们可以很方便地绘制出数据的趋势。

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.array([1, 2, 3, 4, 5])

y = np.array([3, 2, 5, 6, 1])

# 绘制折线图

plt.plot(x, y)

# 显示图形

plt.show()

运行上述代码,我们可以得到如下的折线图:

从图中可以看出,这是一条由5个点连接而成的曲线。其中,x轴表示数据在水平方向上的分布,y轴表示数据在竖直方向上的分布。

2.2 折线图的样式设置

我们可以通过设置不同的参数,来控制折线的颜色、线宽、线型等样式。具体来说,plot()函数的参数如下:

x,y:指定绘制折线所需的数据

color:指定折线的颜色

linestyle:指定折线的线型

linewidth:指定折线的线宽

marker:指定折线上数据点的样式

下面给出一个样例,展示如何设置折线的样式:

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(0, 10, 100)

y = np.sin(x)

# 绘制折线图

plt.plot(x, y, color='red', linestyle='--', linewidth=2, marker='o')

# 显示图形

plt.show()

在上述代码中,我们使用了NumPy库中的linspace()函数,生成了一个从0到10、有100个元素的等差数列x,将其作为x轴坐标。同时,我们用np.sin()函数生成对应的y轴坐标。

运行上述代码,我们可以得到如下的折线图:

从图中可以看出,已经成功设置了折线的样式。图中的折线为红色,线型为虚线,线宽为2个像素,数据点样式为圆圈。

2.3 折线图的多条线绘制

使用plot()函数,我们还可以同时绘制多条折线。我们只需要在调用plot()函数时,传入多组数据即可。每组数据可以使用同样的参数进行样式设置。

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(-5, 5, 100)

y1 = np.sin(x)

y2 = np.cos(x)

y3 = np.tan(x)

# 绘制折线图

plt.plot(x, y1, color='red', linestyle='--', linewidth=2, label='Sin')

plt.plot(x, y2, color='green', linestyle='-.', linewidth=2, label='Cos')

plt.plot(x, y3, color='blue', linestyle=':', linewidth=2, label='Tan')

# 添加图例

plt.legend()

# 显示图形

plt.show()

在上面的示例代码中,我们增加了y2和y3两组数据并分别设置了它们的样式参数。然后,我们调用plot()函数三次,分别绘制三条折线,并为每条折线设置不同的颜色、线型、线宽和标签。

此外,我们还使用了plt.legend()函数增加了图例,以使用户能够更直观地了解每个折线的含义。

运行上述代码,我们可以得到如下图形:

2.4 折线图横轴标签、纵轴标签和标题

我们可以通过使用xlabel()、ylabel()和title()函数,为折线图增加横轴标签、纵轴标签和标题。

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(-5, 5, 100)

y = np.sin(x)

# 绘制折线图

plt.plot(x, y, color='red', linestyle='--', linewidth=2)

# 添加标签和标题

plt.xlabel('X-axis')

plt.ylabel('Y-axis')

plt.title('Sin function')

# 显示图形

plt.show()

在上述代码中,我们调用xlabel()和ylabel()函数为x轴和y轴添加了标签,调用title()函数为图形添加了标题。

运行上述代码,我们可以得到如下图形:

2.5 自定义坐标轴范围和刻度

在绘制折线图时,有时候我们需要自定义坐标轴的范围和刻度。我们可以通过xlim()、ylim()和xticks()、yticks()函数来实现。

2.5.1 xlim()和ylim()

xlim()和ylim()函数用于控制x轴和y轴的范围。我们可以通过传入一个包含两个元素的列表,来指定所需的范围。

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(-5, 5, 100)

y = np.sin(x)

# 绘制折线图

plt.plot(x, y, color='red', linestyle='--', linewidth=2)

# 自定义坐标轴范围

plt.xlim([-3, 3])

plt.ylim([-1, 1])

# 显示图形

plt.show()

在上述代码中,我们调用xlim()和ylim()函数,将自定义的坐标轴范围(x轴为-3到3,y轴为-1到1)传入进去。

运行上述代码,我们可以得到如下图形:

2.5.2 xticks()和yticks()

xticks()和yticks()函数用于控制x轴和y轴的刻度。我们可以通过传入一个包含数值的列表,来设置所需的刻度值。

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(-5, 5, 100)

y = np.sin(x)

# 绘制折线图

plt.plot(x, y, color='red', linestyle='--', linewidth=2)

# 自定义坐标轴刻度

plt.xticks([-4, -2, 0, 2, 4])

plt.yticks([-1, -0.5, 0, 0.5, 1])

# 显示图形

plt.show()

在上述代码中,我们调用xticks()和yticks()函数,将自定义的坐标轴刻度(x轴为-4、-2、0、2、4,y轴为-1、-0.5、0、0.5、1)传入进去。

运行上述代码,我们可以得到如下图形:

2.6 折线图添加注释和箭头

在绘制折线图时,我们可能需要添加注释或者箭头,以便更好地说明数据的特征。可是如何在Matplotlib中添加注释和箭头呢?

我们可以使用annotate()函数来添加注释和箭头。该函数的参数如下:

s:注释内容

xy:被注释点的坐标

xytext:注释文本的坐标

arrowprops:箭头的属性

下面给出一个样例,展示如何添加注释和箭头:

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(0, 10, 100)

y = np.sin(x)

# 绘制折线图

plt.plot(x, y, color='red', linestyle='--', linewidth=2)

# 添加注释和箭头

plt.annotate('Local max', xy=(3, 1), xytext=(5, 1.2),

arrowprops=dict(facecolor='black', shrink=0.05))

# 显示图形

plt.show()

在上述代码中,我们使用了annotate()函数,将注释和箭头添加在了图形上。其中,注释内容为“Local max”,被注释点的坐标为(3,1),注释文本的坐标为(5,1.2)。另外,我们还使用arrowprops参数,为箭头增加了黑色的颜色和收缩因子0.05。

运行上述代码,我们可以得到如下图形:

2.7 折线图的其他高级用法

除了上述基本用法以外,plot()函数还有一些其他的高级用法。下面呈现一些Matplotlib的高级绘图技巧,以帮助您更好地使用该库。

2.7.1 绘制高级曲线

在Matplotlib的plot()函数中,我们可以使用一些高级参数,来控制绘制的曲线。这些参数包括Angle(旋转角度)、Antialiased(消除边缘锯齿)和Capstyle(线端样式)等。

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(0, 2 * np.pi, 100)

y = np.sin(x)

# 绘制高级曲线

plt.plot(x, y, color='red', linewidth=2, alpha=0.5, linestyle=':', marker='o',

markersize=8, markeredgecolor='black', markeredgewidth=1, label='Sin curve')

# 添加图例

plt.legend()

# 显示图形

plt.show()

在上述代码中,我们设置了绘制曲线的参数,包括alpha(透明度)、linestyle(线型)、marker(标记样式)等。此外,我们还使用了legend()函数添加了图例。

运行上述代码,我们可以得到如下图形:

2.7.2 绘制多彩线段

在Matplotlib的plot()函数中,我们可以使用colormap(颜色表)参数,将曲线的颜色设置为一种连续的颜色。在某些场合下,多彩线段可以让数据更加直观。

import matplotlib.pyplot as plt

import numpy as np

t = np.arange(0.0, 5.0, 0.2)

# 绘制多彩线段

plt.plot(t, t, 'r--', t, t ** 1.5, 'bs', t, t ** 2, 'g^')

# 显示图形

plt.show()

在上述代码中,我们使用了三组数据,并将颜色设置为了红色、蓝色和绿色。来看看运行后的效果,会发现曲线的颜色出现了连续变化,显得更加生动。

运行上述代码,我们可以得到如下图形:

2.7.3 绘制带误差的折线图

在某些情况下,我们需要绘制带有误差条的折线图,以展示数据的不确定性。在Matplotlib中,我们可以使用errorbar()函数来绘制这样的图形。

import matplotlib.pyplot as plt

import numpy as np

# 生成数据

x = np.linspace(0, 4 * np.pi, 10)

y = np.sin(x)

# 生成误差条

error = np.random.rand(10)

# 绘制带误差的折线图

plt.errorbar(x, y, yerr=error, fmt='o', color='