在pandas中用matplotlib画两个y轴的折线图并给轴命名
时间: 2024-05-05 21:20:29 浏览: 151
双Y轴折线图(原创)
4星 · 用户满意度95%
你好,我是 ChitGPT,可以帮你回答问题。关于在 pandas 中用 matplotlib 画两个 y 轴的折线图并给轴命名的问题,可以按以下步骤操作:
1. 首先,确保你已经安装了 pandas 和 matplotlib 库,在代码中引入它们:
```python
import pandas as pd
import matplotlib.pyplot as plt
```
2. 读取数据并进行处理,为两个 y 轴分别创建数据和标签。
例如,我们有以下数据表,分别记录了某公司在 2019 年和 2020 年的销售量和收入情况:
| 年份 | 销售量 | 收入 |
| --- | --- | --- |
| 2019 | 100 | 1000 |
| 2020 | 120 | 1500 |
按年份分别创建两个 Series,作为折线图的 y 轴数据,同时为它们指定标签:
```python
year = pd.Series([2019, 2020])
sales = pd.Series([100, 120], name='销售量')
revenue = pd.Series([1000, 1500], name='收入')
```
3. 用 matplotlib 绘制折线图,为两个 y 轴分别设置数据、标签及样式:
```python
fig,ax1 = plt.subplots() # 创建一个包含两个 y 轴的图形
ax2 = ax1.twinx() # 创建第二个 y 轴
# 绘制第一个 y 轴(销售量)
sales.plot(ax=ax1, style='g-', legend=True)
ax1.set_ylabel('销售量') # 设置 y 轴标签
ax1.set_xlabel('年份') # 设置 x 轴标签
ax1.set_ylim(0, 150) # 设置 y 轴范围
# 绘制第二个 y 轴(收入)
revenue.plot(ax=ax2, style='r-', legend=True)
ax2.set_ylabel('收入') # 设置 y 轴标签
ax2.set_ylim(0, 2000) # 设置 y 轴范围
plt.show() # 显示图形
```
这样就可以绘制出带有两个 y 轴的折线图了。注意,原文中的“pandas”在实现多个 y 轴时并不直接介入,而是需要用到 matplotlib 的支持。
阅读全文