Python画双y轴折线图
概述
在数据可视化中,折线图是一种常用的方式来展示数据的变化趋势。有时候,我们需要同时展示两个相关性较强但量纲不同的数据指标,这时候就需要使用双y轴折线图来呈现这些数据。
本文将介绍如何使用Python来绘制双y轴折线图,帮助刚入行的开发者快速上手。
整体流程
下面是实现“Python画双y轴折线图”的整体流程:
步骤 | 描述 |
---|---|
1 | 导入必要的库 |
2 | 准备数据 |
3 | 创建画布 |
4 | 绘制折线图 |
5 | 设置双y轴 |
6 | 添加图例 |
7 | 展示图形 |
接下来,我们将逐步介绍每一步需要做什么,以及具体的代码实现。
步骤详解
1. 导入必要的库
首先,我们需要导入一些需要使用的库,包括matplotlib.pyplot
和numpy
。
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