Python画双y轴折线图

概述

在数据可视化中,折线图是一种常用的方式来展示数据的变化趋势。有时候,我们需要同时展示两个相关性较强但量纲不同的数据指标,这时候就需要使用双y轴折线图来呈现这些数据。

本文将介绍如何使用Python来绘制双y轴折线图,帮助刚入行的开发者快速上手。

整体流程

下面是实现“Python画双y轴折线图”的整体流程:

步骤 描述
1 导入必要的库
2 准备数据
3 创建画布
4 绘制折线图
5 设置双y轴
6 添加图例
7 展示图形

接下来,我们将逐步介绍每一步需要做什么,以及具体的代码实现。

步骤详解

1. 导入必要的库

首先,我们需要导入一些需要使用的库,包括matplotlib.pyplotnumpy

import matplotlib.pyplot as plt
import numpy as np

2. 准备数据

在绘制双y轴折线图前,我们需要准备两组数据,分别对应两个y轴。

x = np.linspace(0, 10, 100)  # 创建一个包含100个元素的等差数列,范围从0到10
y1 = np.sin(x)  # 第一个y轴对应的数据
y2 = np.cos(x)  # 第二个y轴对应的数据

3. 创建画布

接下来,我们需要创建一个画布,并设置图形的大小。

fig, ax1 = plt.subplots(figsize=(8, 6))

4. 绘制折线图

然后,我们可以使用plot函数来绘制两条折线图。其中,ax1代表第一个y轴。

ax1.plot(x, y1, color='red', label='sin(x)')  # 绘制第一条折线图,颜色为红色,标签为'sin(x)'
ax1.set_xlabel('x')  # 设置x轴标签
ax1.set_ylabel('y1', color='red')  # 设置第一个y轴标签的颜色为红色
ax1.tick_params('y', colors='red')  # 设置第一个y轴刻度的颜色为红色

5. 设置双y轴

为了实现双y轴的效果,我们需要再创建一个坐标轴,并将其与第一个y轴共享x轴。

ax2 = ax1.twinx()  # 创建第二个坐标轴,与第一个y轴共享x轴

6. 添加图例

为了让读者能够更好地理解折线图的含义,我们可以添加图例。

lines = ax1.get_lines() + ax2.get_lines()  # 获取所有的线条对象
labels = [line.get_label() for line in lines]  # 获取所有线条的标签
ax1.legend(lines, labels, loc='upper right')  # 添加图例,位置为右上角

7. 展示图形

最后,我们可以使用show()函数展示图形。

plt.show()

代码实例

下面是完整的代码实例:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, ax1 = plt.subplots(figsize=(8, 6))
ax1.plot(x, y1, color='red', label='sin(x)')
ax1.set_xlabel('x')
ax1.set_ylabel('y1', color='red')
ax1.tick_params('y', colors='red')

ax2 = ax1.twinx()
ax2.plot(x, y2, color='blue', label='cos(x)')
ax2.set_ylabel('y2', color='blue')
ax2.tick_params('y', colors='blue')

lines = ax1