Как сделать автомасштабирование пространства для графика (в реальном времени) по y оси (несколько осей y)

автомасштабирование  графика, которую я хочу получить

Добрый день! У меня на данный момент график, который работает в реальном времени. И когда добавляются данные у меня соответственно меняется максимум и минимум у оси у(у каждого разный). Теперь как можно сделать так чтобы при достижений определенного значения у масштаб определенного пространства для графика увеличивался, а остальные соответственно уменьшались. Заранее спасибо!

import matplotlib.pyplot as plt
import pandas as pd
from matplotlib.animation import FuncAnimation
import os
from pathlib import Path
import numpy as np

fig = plt.figure(figsize=(17, 9), dpi=100)
gs = fig.add_gridspec(7, hspace=0)
axs = gs.subplots(sharex=False, sharey=False)

def animation(i):
    data = pd.read_csv('FlyData.txt', sep='\s+', encoding='latin-1', header=None)
    data = pd.DataFrame(data)

    x = data[0]
    colors = ['#FFD700', 'g', 'b', 'r', 'purple', 'c', 'm', 'y', 'k', 'c', '#FF4500', '#2F4F4F', '#FF69B4', '#556B2F', '#20B2AA', '#BDB76B', '#FFD700', '#DB7093', '#7FFF00', '#4B0082']
    for i in range(0, 7):
        y = data[i+1]
        ymax = max(y)
        ymin = min(y)
        stepx = max(x)/10

        axs[i].label_outer()
        axs[i].set_ylim([ymin*1.1, ymax*1.1])
        axs[i].set_xticks(np.arange(0, max(x)+1, stepx))
        axs[i].spines['right'].set_visible(False)
        axs[i].spines['top'].set_visible(False)
        axs[i].plot(x, y, colors[i])


        if ymax>100:
            axs[i].set_yticks(np.arange(ymin, ymax, 50))
        elif ymax<100 and ymax>15:
            axs[i].set_yticks(np.arange(ymin, ymax, 20))
        elif ymax<15 and ymax>1:
            axs[i].set_yticks(np.arange(ymin, ymax, 2))
        else:
            axs[i].set_yticks(np.arange(ymin, ymax, 0.20))

    plt.xlabel('Время')
    plt.ylabel('Данные вертолета')

ani = FuncAnimation(fig, animation, interval=300)
plt.show()

Ответы (0 шт):