Matplotlib绘制两个Y轴需要使用.twinx()
的方法:
fig = plt.figure()
ax = fig.add_subplot(111) # 第一个轴
ax2 = ax.twinx() # 第二个轴
示例代码
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 20)
y1 = np.random.random(20)
y2 = np.random.random(20) * 100
y3 = np.random.random(20) * 100
# 开始绘图
fig = plt.figure()
ax = fig.add_subplot(111)
line1 = ax.plot(x, y1, label='y1', color="magenta")
ax2 = ax.twinx()
line2 = ax2.plot(x, y2, label="y2", color='deepskyblue')
line3 = ax2.plot(x, y3, label="y3", color="pink")
# 把图例都合并到一起
lns = line1 + line2 + line3
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc=0)
# 设置坐标轴
ax.set_xlabel('x axis')
ax.set_ylabel('y1 axis')
ax2.set_ylabel("y2+y3 axis")
plt.show()
效果: