简介:在Python的matplotlib库中,可以使用subplots2grid函数来绘制双坐标柱状图。下面是一个简单的示例,展示了如何绘制一个双坐标柱状图,并添加相应的标签和刻度。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1, 6)
y1 = np.random.randint(1, 10, 5)
y2 = np.random.randint(1, 10, 5)
fig = plt.figure()
ax1 = plt.subplots2grid((3, 3), (0, 0), colspan=3)
ax2 = plt.subplots2grid((3, 3), (1, 0), colspan=3)
ax3 = plt.subplots2grid((3, 3), (1, 2), rowspan=2)
ax4 = plt.subplots2grid((3, 3), (2, 0))
ax1.bar(x, y1, color=’b’, label=’y1’)
ax1.set_xlabel(‘X1’)
ax1.set_ylabel(‘Y1’, color=’b’)
ax1.set_title(‘Dual-axis Bar chart’)
ax1.legend()
ax2.bar(x, y2, color=’r’, label=’y2’)
ax2.set_xlabel(‘X2’)
ax2.set_ylabel(‘Y2’, color=’r’)
ax2.legend()
ax3.bar(x, y1, color=’c’, label=’y1’)
ax3.set_xlabel(‘X3’)
ax3.set_ylabel(‘Y3’, color=’c’)
ax3.legend()
ax3.set_xlabel(‘X4’, visible=False) # 将X4标签设置为不可见,以避免重复显示标签
ax3.set_ylabel(‘Y4’, visible=False) # 将Y4标签设置为不可见,以避免重复显示标签
ax4.bar(x, y2, color=’g’, label=’y2’)
ax4.set_xlabel(‘X5’)
ax4.set_ylabel(‘Y5’, color=’g’)
ax4.set_xlabel(‘X6’, visible=False) # 将X6标签设置为不可见,以避免重复显示标签
ax4.set_ylabel(‘Y6’, visible=False) # 将Y6标签设置为不可见,以避免重复显示标签
plt.show()