Python 数据可视化教程:绘制精美的双 Y 轴折线图

作者:php是最好的2024.01.17 22:20浏览量:19

简介:在数据可视化中,有时我们需要展示两个或更多的变量之间的关系,而这些变量可能具有不同的量纲或范围。在这种情况下,使用双 Y 轴折线图可以很好地解决这个问题。在本文中,我们将学习如何使用 Matplotlib 和 Pandas 在 Python 中绘制双 Y 轴折线图。我们将以一个简单的数据集为例,展示如何创建这样的图表,并对其进行美化。

首先,我们需要安装必要的库。如果你还没有安装这些库,可以使用以下命令进行安装:

  1. pip install matplotlib pandas

接下来,我们将使用 Pandas 从 CSV 文件中读取数据,并使用 Matplotlib 绘制双 Y 轴折线图。CSV 文件应包含两列你想在第一个 Y 轴上显示的数据,以及另外两列你想在第二个 Y 轴上显示的数据。假设你的 CSV 文件名为 ‘data.csv’,且文件内容如下:

  1. x,y1,y2
  2. 1,5,6
  3. 2,10,7
  4. 3,15,8
  5. 4,20,9

首先,我们导入必要的库并读取数据:

  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 从 CSV 文件中读取数据
  4. data = pd.read_csv('data.csv')

然后,我们创建图表并添加两个 Y 轴:

  1. fig, ax1 = plt.subplots() # 创建一个图形和第一个 Y 轴
  2. ax2 = ax1.twinx() # 创建第二个 Y 轴

接下来,我们将数据绘制到第一个 Y 轴上:

  1. ax1.plot(data['x'], data['y1'], label='y1') # 在第一个 Y 轴上绘制 y1 数据
  2. ax1.set_ylabel('Y Axis 1', color='b') # 设置第一个 Y 轴的标签和颜色
  3. ax1.tick_params(axis='y', labelcolor='b') # 设置第一个 Y 轴的刻度标签颜色

接下来,我们将数据绘制到第二个 Y 轴上:

  1. ax2.plot(data['x'], data['y2'], label='y2') # 在第二个 Y 轴上绘制 y2 数据
  2. ax2.set_ylabel('Y Axis 2', color='r') # 设置第二个 Y 轴的标签和颜色
  3. ax2.tick_params(axis='y', labelcolor='r') # 设置第二个 Y 轴的刻度标签颜色

最后,我们可以添加图例、标题和显示图表:
```python
ax1.legend() # 在第一个 Y 轴上添加图例
ax2.legend() # 在第二个 Y 轴上添加图例
plt.title(‘Double Y Axis Line Chart’) # 设置图表标题
plt.show() # 显示图表