Как получить длину текущей отображаемой оси - PullRequest
0 голосов
/ 04 августа 2020

У меня есть интерактивный график (есть ползунки для всех параметров) , но я хочу только рассчитать и нарисовать график там, где он виден. Я совершенно не знаком с matplotlib / pyplot, поэтому был бы очень признателен за помощь.

Вот код, используемый для инициализации графика:

#creating the figure and embedding it into tkinter
fig = Figure(figsize=(5, 4), dpi=100)
self.sp = fig.add_subplot(111)
self.sp.set_xlim(-30, 100)
self.canvas = FigureCanvasTkAgg(fig, master=self.window)
self.canvas.draw()
self.canvas.get_tk_widget().pack(side=t.TOP, fill=t.BOTH, expand=1)

А вот код, который dr aws обновляет график (рисуются 3 разные функции):

def UpdateSimulation(self, x):
        self.sp.clear()
        vals = ([],[])
        valsN = ([], [])
        valsT= ([],[])
        for t in np.arange(-30, 100, 0.3):
                vals[0].append(t)
                vals[1].append(CPMW.MF_TotalPulse(self.tauN.get(),
                                          self.tauIn.get(),
                                          self.tauT.get(),
                                          t + self.t0.get(),
                                          self.t0.get(),
                                          self.An.get(),
                                          self.At.get()))
                valsN[0].append(t)
                valsN[1].append(CPMW.MF_NonThermalComponent(t + self.t0.get(), self.An.get(), self.tauN.get(), self.tauIn.get(), self.t0.get()))
                valsT[0].append(t)
                valsT[1].append(CPMW.MF_ThermalComponent(t + self.t0.get(), self.At.get(), self.tauT.get(), self.tauN.get(), self.t0.get()))       
        self.sp.plot(vals[0], vals[1], "r-")
        self.sp.plot(valsN[0], valsN[1], "b-")
        self.sp.plot(valsT[0], valsT[1], "g-")
        self.canvas.draw()

Теперь, когда пользователь панорамирует изображение графика позже, он будет видеть только функции между x = -30 и x = 100.

Мой вопрос: могу ли я каким-то образом получить наименьшее и наибольшее значение x, видимое пользователю?

Я пробовал axis.get_xlim(), но каким-то образом пределы не менялись, и отображался только график в диапазоне от x = 0.3 до x = 0.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...