python多轴图_Python:在一个绘图中绘制多个y轴

我试图在一个图中绘制出三个不同y轴的图。到目前为止还有效。代码如下:

import matplotlib.pyplot as plt

plt.close('all')

def make_patch_spines_invisible(ax):

ax.set_frame_on(True)

ax.patch.set_visible(False)

for sp in ax.spines.values():

sp.set_visible(False)

plt.rcParams["figure.figsize"] = [16, 9]

fig, host = plt.subplots()

fig.subplots_adjust(right=0.75)

par1 = host.twinx()

par2 = host.twinx()

par2.spines["right"].set_position(("axes", 1.2))

make_patch_spines_invisible(par2)

par2.spines["right"].set_visible(True)

p1, = host.plot(x1,y1, "g-", label = "y1", lw=0.5, alpha = 0.7)

p2, = par1.plot(x2,y2, "r-", label = "y2", lw= 0.5)

p3, = par2.plot(x3,y3, "b-", label = "y3", lw= 0.5)

host.set_xlabel("Time [s]")

host.set_ylabel("y1")

par1.set_ylabel("y2")

par2.set_ylabel("y3")

host.yaxis.label.set_color(p1.get_color())

par1.yaxis.label.set_color(p2.get_color())

par2.yaxis.label.set_color(p3.get_color())

tkw = dict(size=4, width=1.5)

host.tick_params(axis='y', colors=p1.get_color(), **tkw)

par1.tick_params(axis='y', colors=p2.get_color(), **tkw)

par2.tick_params(axis='y', colors=p3.get_color(), **tkw)

host.tick_params(axis='x', **tkw)

lines = [p1, p2, p3]

host.legend(lines, [l.get_label() for l in lines])

plt.title('Messung 1')

plt.xticks(np.arange(min(x1), max(x1)+100,25))

host.grid(axis = 'x' ,linestyle = '-', linewidth='0.5')

plt.show()

到目前为止一切正常但有一个错误蓝色图形(y3)错误该信号与其他两个信号在同一时间段测量,但根据曲线图,信号在290秒结束。

我发现,最后一个标出来的信号总是错的。

有人能帮我吗?

非常感谢你。

你可能感兴趣的:(python多轴图)