具有多个刻度的matplotlib仅显示一个图

时间:2017-03-17 13:18:08

标签: python matplotlib

我正在使用下面的函数绘制具有两个不同比例的三条线。

def plot2(x1, y1, x2, y2, x3, y3):
    fig, ax1 = plt.subplots()
    ax1.plot(x1, y1, 'b')
    ax1.plot(x2, y2, 'g')

    ax2 = ax1.twinx()
    ax2.plot(x3, y3, 'r')

    fig.tight_layout()
    plt.show()

但是,ax2在图中遮蔽了ax1。

1 个答案:

答案 0 :(得分:0)

我无法重现这个问题。通过将代码扩展到最小的运行示例:

import matplotlib.pyplot as plt

def plot2(x1, y1, x2, y2, x3, y3):
    fig, ax1 = plt.subplots()
    ax1.plot(x1, y1, 'b')
    ax1.plot(x2, y2, 'g')

    ax2 = ax1.twinx()
    ax2.plot(x3, y3, 'r')

    fig.tight_layout()
    plt.show()

x1 = [1,2,3,4,5] 
x2 = [1.25,2.25,3.25,4.25,5.25]
x3 = [1.5, 2.5, 3.5, 4.5, 5.5]

y1 = [1,2,3,4,5]
y2 = [6,7,8,9,10]
y3 = [11,12,13,14,15]

plot2(x1,y1,x2,y2,x3,y3)

我得到以下结果:

png