python 双坐标轴柱状图
时间: 2025-01-01 22:25:18 浏览: 8
### 如何用 Python Matplotlib 实现双坐标轴柱状图
为了创建带有双坐标轴的柱状图,可以利用 `matplotlib` 的功能来定义两个不同的 y 轴。下面是一个具体的例子展示如何实现这一目标:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 假设数据已经加载到 DataFrame 中
data = {
'Year': [2013, 2014, 2015, 2016, 2017],
'Employment': [700, 720, 750, 780, 800], # 左侧y轴的数据
'GDP_Growth_Rate': [7.8, 7.3, 6.9, 6.7, 6.5] # 右侧y轴的数据
}
df = pd.DataFrame(data)
fig, ax1 = plt.subplots(figsize=(10, 8))
color = 'tab:red'
ax1.set_xlabel('年份')
ax1.set_ylabel('就业人数', color=color)
p1 = ax1.bar(df['Year'], df['Employment'], label='就业人数', color=color, alpha=0.6)
ax1.tick_params(axis='y', labelcolor=color)
# 创建第二个y轴共享相同的x轴
ax2 = ax1.twinx()
color = 'tab:blue'
ax2.set_ylabel('GDP增长率 (%)', color=color)
p2 = ax2.plot(df['Year'], df['GDP_Growth_Rate'], marker='o', linestyle='-', color=color, linewidth=2, label='GDP增长率')
lines_labels = [ax.get_label() for ax in fig.axes]
fig.legend(lines_labels, ['就业人数', 'GDP增长率'])
plt.title('2013-2017 年中国就业人数与 GDP 增长率对比')
plt.show()
```
在这个实例中,通过调用 `twinx()` 方法为图表添加了一个新的右侧纵坐标轴[^1]。
阅读全文