Несколько осей Y в Matplotlib, один из них выпадает наружу - PullRequest
0 голосов
/ 17 октября 2018

Я строю три набора данных временных рядов с тремя отдельными осями Y.Проблема в том, что когда я сохраняю фигуру, третья ось Y выходит за пределы графика.Если я уменьшу положение par2.spines, вторая и третья оси будут перекрываться.Когда я изменил размер фига, ось X испортилась.Есть ли простой способ исправить это?

for i in range(3,4):
    fig = plt.figure(figsize=(18,5))
    host = fig.add_subplot(111)

    par1 = host.twinx()
    par2 = host.twinx()
    host.set_ylim(0, 20)
    par1.set_ylim(0, 120)
    par2.set_ylim(5,7.5)

    host.set_ylabel("Temperature")
    par1.set_ylabel("EC")
    par2.set_ylabel("pH")

    color1 = 'tomato'
    color2 = 'blueviolet'
    color3 = 'springgreen'

    p1 = host.scatter(T.index,T.iloc[:,i], color=color1,label="Temperature") 
    p2 = par1.scatter(T.index, EC.iloc[:,i], color=color2, label="EC")
    p3 = par2.scatter(T.index, pH.iloc[:,i], color=color3, label="pH")

    lns = [p1, p2, p3]
    host.legend(handles=lns, loc=1) # tar fra aksene

    # right, left, top, bottom
    par2.spines['right'].set_position(('outward', 40))      
    par2.yaxis.set_ticks_position('right')

    host.yaxis.label.set_color(color1)
    par1.yaxis.label.set_color(color2)
    par2.yaxis.label.set_color(color3)
    a=pH.columns[i]
    host.set_title('Temperature, EC and pH for %s'%(a))
    plt.show()
    fig.savefig('TECpH%s'%(a))

enter image description here

...