python 绘图时 如何多个折线子图共用一个图例 python多条折线图_matplotlib

简介

在数据可视化领域,Matplotlib是一款非常强大的Python库,它可以用于绘制各种类型的图表,包括折线图。本文将介绍如何使用Matplotlib创建多种不同类型的折线图,并提供示例代码。

创建模版

在绘图之前,我们可以先创建我们的绘图模版,节省我们的时间,后续绘图只需要我们直接绘图即可,不再需要我们单独设置图像大小清晰度等问题,代码如下:

import matplotlib.pyplot as plt

# 画布
plt.figure(figsize=(9, 3),  # (宽度 , 高度) 单位inch
           dpi=100,  # 清晰度 dot-per-inch
           facecolor='#CCCCCC',  # 画布底色
           edgecolor='black', linewidth=0.1, frameon=True,  # 画布边框
           # frameon=False  # 不要画布边框
           )

plt.plot()
plt.show()

运行脚本,绘制的模版如下:

python 绘图时 如何多个折线子图共用一个图例 python多条折线图_折线图_02

创建基本折线图

首先,我们将创建一个基本的折线图,用于显示一组数据的趋势。假设我们有一个月份和销售额的数据集,我们希望将其可视化成折线图,代码如下:

import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = 'FangSong'

# 画布
plt.figure(figsize=(9, 6),  # (宽度 , 高度) 单位inch
           dpi=100,  # 清晰度 dot-per-inch
           facecolor='#CCCCCC',  # 画布底色
           edgecolor='black', linewidth=0.1, frameon=True,  # 画布边框
           # frameon=False  # 不要画布边框
           )

# 数据
months = ['一月', '二月', '三月', '四月', '五月']
sales = [10000, 12000, 9000, 11000, 13000]

# 创建折线图
plt.plot(months, sales)

# 添加标题和标签
plt.title('每月销售额')
plt.xlabel('月份')
plt.ylabel('销售额(元)')

# 显示图表
plt.show()

运行脚本,绘制的折线图如下所示:

python 绘图时 如何多个折线子图共用一个图例 python多条折线图_子图_03

上述代码首先导入Matplotlib库,然后创建了一个包含月份和销售额的数据集。接下来,使用plt.plot()函数创建折线图,然后使用plt.title()plt.xlabel()plt.ylabel()函数添加标题和标签。最后,使用plt.show()函数显示图表。

创建多个折线图

有时候,我们希望在同一个图中显示多条折线,以便进行比较。以下是一个示例,展示了两个产品的销售趋势:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'FangSong'

plt.figure(figsize=(9, 6),  # (宽度 , 高度) 单位inch
           dpi=100,  # 清晰度 dot-per-inch
           facecolor='#CCCCCC',  # 画布底色
           edgecolor='black', linewidth=0.1, frameon=True,  # 画布边框
           # frameon=False  # 不要画布边框
           )

# 数据
months = ['一月', '二月', '三月', '四月', '五月']
product1_sales = [10000, 12000, 9000, 11000, 13000]
product2_sales = [8000, 9500, 8200, 10500, 11000]

# 创建折线图
plt.plot(months, product1_sales, label='产品1')
plt.plot(months, product2_sales, label='产品2')

# 添加标题和标签
plt.title('产品销售趋势')
plt.xlabel('月份')
plt.ylabel('销售额(元)')

# 添加图例
plt.legend()

# 显示图表
plt.show()

运行脚本,绘制的图像如下:

python 绘图时 如何多个折线子图共用一个图例 python多条折线图_matplotlib_04


上述代码中,我们使用plt.plot()函数分别绘制了两个产品的销售折线,并通过label参数为每条折线添加了标签。然后,使用plt.legend()函数添加图例,以便区分两个产品的销售趋势。

创建多个子图

有时候,我们希望在同一个图中创建多个子图,以便比较不同数据集之间的关系。以下是一个示例,展示如何创建一个包含两个子图的图表:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 创建第一个子图
plt.subplot(2, 1, 1)
plt.plot(x, y1)
plt.title('Sin(x)')

# 创建第二个子图
plt.subplot(2, 1, 2)
plt.plot(x, y2)
plt.title('Cos(x)')

# 调整子图布局
plt.tight_layout()

# 显示图表
plt.show()

运行脚本,生成的图像如下图:

python 绘图时 如何多个折线子图共用一个图例 python多条折线图_matplotlib_05

上述代码中,我们使用plt.subplot()函数创建了一个包含两个子图的图表。第一个参数表示总行数,第二个参数表示总列数,第三个参数表示当前子图的索引。然后,分别在两个子图中绘制了不同的折线图,并使用plt.tight_layout()函数调整了子图的布局。

总结

Matplotlib是一个强大的Python库,可用于创建各种类型的折线图以及其他数据可视化图表。在本文中,我们演示了如何创建基本折线图、多个折线图和多个子图,以满足不同的可视化需求。希望这些示例能帮助你更好地使用Matplotlib进行数据可视化。