有时候可能会有这种需求,一个图中的几条线的y轴范围不同,或者根本不是一个单位,这时可以增加另外一个y轴,标上不同的刻度。
-
先看效果
-
导入支持包
import matplotlib.pyplot as plt import numpy as np
-
生成测试数据
x = np.arange(0, 10, 0.1) y1 = 0.05 * x**2 y2 = -1 * y1
-
生成画布
fig, ax1 = plt.subplots()
-
共用x轴
ax2 = ax1.twinx()
-
画图
ax1.set_xlabel('X data') # 画基于左轴的曲线 ax1.plot(x, y1, 'g-') # green, solid line ax1.set_ylabel('Y1 data', color='g') # 画基于右轴的曲线 ax2.plot(x, y2, 'b--') # blue, dashed line ax2.set_ylabel('Y2 data', color='b') # 出图 plt.show()
出图结果如文首图所示
-
同理可以共用一个y轴,甚至次x轴
y = np.arange(0, 10, 0.1) x1 = 0.05 * y**2 x2 = -1 * x1 fig, ax1 = plt.subplots() ax2 = ax1.twiny() ax1.set_ylabel('Y data') ax1.plot(x1, y, 'g-') # green, solid line ax1.set_xlabel('X1 data', color='g') ax2.plot(x2, y, 'b--') # blue, dashed line ax2.set_xlabel('X2 data', color='b') plt.show()
出图如下
-
参考文献
程序主要来自 次坐标轴,略有改动