如何使用 Python 绘制主次折线图

在数据分析和可视化中,折线图是展示数据变化趋势的重要工具,特别是在时间序列分析中。本文将带你一步一步学习如何在 Python 中绘制主次折线图。我们将使用 matplotlib 库,下面是整个过程的流程概述。

流程步骤

步骤 描述
1 安装 matplotlib
2 导入所需库
3 准备数据
4 创建主图
5 添加次图
6 定制图表
7 显示图表

详细步骤

第一步:安装 matplotlib

首先,如果你还没有安装 matplotlib ,可以使用以下命令安装:

pip install matplotlib

第二步:导入所需库

在使用 matplotlib 之前,我们需要导入该库以及其他工具,例如 numpy 来生成数据。

import matplotlib.pyplot as plt  # 导入绘图库
import numpy as np               # 导入数值计算库

第三步:准备数据

我们先生成一些样本数据,作为绘制折线图的基础。这里我们用 numpy 生成时间序列数据。

# 生成月份数组
months = np.arange(1, 13)

# 生成主图数据(示例:某产品的销售额)
sales = np.random.randint(100, 500, size=12)

# 生成次图数据(示例:市场趋势线)
trend = (sales + np.random.randint(-50, 50, size=12))  # 模拟趋势线

第四步:创建主图

我们先绘制主图,展示销售额的变化。

fig, ax1 = plt.subplots()  # 创建一个图形和一组子图

# 绘制主图
ax1.plot(months, sales, 'b-', label='Sales', marker='o')  # 'b-'表示蓝色实线
ax1.set_xlabel('Months')  # X轴标签
ax1.set_ylabel('Sales', color='b')  # Y轴标签,设置为蓝色
ax1.tick_params(axis='y', labelcolor='b')  # 设置Y轴刻度颜色

第五步:添加次图

在主图上添加次图,用不同的格式展示市场趋势。

ax2 = ax1.twinx()  # 创建一个与主轴共享X轴的次轴

# 绘制次图
ax2.plot(months, trend, 'r--', label='Market Trend', marker='x')  # 'r--'表示红色虚线
ax2.set_ylabel('Market Trend', color='r')  # Y轴标签,设置为红色
ax2.tick_params(axis='y', labelcolor='r')  # 设置Y轴刻度颜色

第六步:定制图表

我们可以设置图例来区分主图和次图。

fig.tight_layout()  # 自动调整子图参数,使之填充整个图像区域
ax1.legend(loc='upper left')  # 主图图例位置
ax2.legend(loc='upper right')  # 次图图例位置
plt.title('Sales and Market Trend Over a Year')  # 图表标题

第七步:显示图表

最后,我们用 plt.show() 来展示我们的折线图。

plt.show()  # 显示图表

总结

使用 Python 的 matplotlib 库,你可以轻松地绘制主次折线图,通过共享 X 轴来比较两组数据的趋势。上述步骤从安装、导入库,到准备数据、绘制图表,再到定制和显示图表,完整地覆盖了整个绘图过程。

ER 图示例

在数据可视化中,理解数据之间的关系也非常重要,这里给出一个简单的 ER图 供参考。

erDiagram
    Sales {
        integer ID
        integer Amount
        date Month
    }
    MarketTrend {
        integer ID
        integer TrendValue
        date Month
    }
    Sales ||--o{ MarketTrend : has

通过本教程,您已经学会了如何在 Python 中绘制折线图,特别是主次折线图的实现方法。希望对您的数据分析项目有所帮助!