简介:在数据可视化中,有时我们需要展示两个或更多的变量之间的关系,而这些变量可能具有不同的量纲或范围。在这种情况下,使用双 Y 轴折线图可以很好地解决这个问题。在本文中,我们将学习如何使用 Matplotlib 和 Pandas 在 Python 中绘制双 Y 轴折线图。我们将以一个简单的数据集为例,展示如何创建这样的图表,并对其进行美化。
首先,我们需要安装必要的库。如果你还没有安装这些库,可以使用以下命令进行安装:
pip install matplotlib pandas
接下来,我们将使用 Pandas 从 CSV 文件中读取数据,并使用 Matplotlib 绘制双 Y 轴折线图。CSV 文件应包含两列你想在第一个 Y 轴上显示的数据,以及另外两列你想在第二个 Y 轴上显示的数据。假设你的 CSV 文件名为 ‘data.csv’,且文件内容如下:
x,y1,y21,5,62,10,73,15,84,20,9
首先,我们导入必要的库并读取数据:
import pandas as pdimport matplotlib.pyplot as plt# 从 CSV 文件中读取数据data = pd.read_csv('data.csv')
然后,我们创建图表并添加两个 Y 轴:
fig, ax1 = plt.subplots() # 创建一个图形和第一个 Y 轴ax2 = ax1.twinx() # 创建第二个 Y 轴
接下来,我们将数据绘制到第一个 Y 轴上:
ax1.plot(data['x'], data['y1'], label='y1') # 在第一个 Y 轴上绘制 y1 数据ax1.set_ylabel('Y Axis 1', color='b') # 设置第一个 Y 轴的标签和颜色ax1.tick_params(axis='y', labelcolor='b') # 设置第一个 Y 轴的刻度标签颜色
接下来,我们将数据绘制到第二个 Y 轴上:
ax2.plot(data['x'], data['y2'], label='y2') # 在第二个 Y 轴上绘制 y2 数据ax2.set_ylabel('Y Axis 2', color='r') # 设置第二个 Y 轴的标签和颜色ax2.tick_params(axis='y', labelcolor='r') # 设置第二个 Y 轴的刻度标签颜色
最后,我们可以添加图例、标题和显示图表:
```python
ax1.legend() # 在第一个 Y 轴上添加图例
ax2.legend() # 在第二个 Y 轴上添加图例
plt.title(‘Double Y Axis Line Chart’) # 设置图表标题
plt.show() # 显示图表