У меня есть тяжелый сюжет, и все нормально, что он вычисляет пару секунд, но когда я изменяю размер окна/диаграммы - его время от времени зависает, и это явно не поведение для меня. Как я могу это исправить? Нет никаких изменений в данных сюжета, просто изменение размера.
Demo:Улучшите скорость изменения размера участка (matplotlib) внутри GTK-окна
import numpy as np
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
import matplotlib
matplotlib.use('GTKCairo')
from matplotlib.figure import Figure
from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as FigureCanvas
class MyApp:
def __init__(self):
self.Window = Gtk.Window()
graphFig = Figure()
graphCanvas = FigureCanvas(graphFig)
self.Window.add(graphCanvas)
# just example of heavy chart
subplot = graphFig.add_subplot(111)
for n in range(100):
x = np.arange(0, 100, 0.01)
y = np.sin(x) * n
subplot.plot(x, y)
return
def Run(self):
self.Window.show_all()
Gtk.main()
return
App = MyApp()
App.Run()
Какие существуют варианты фиксации этого вопроса? Я хочу перерисовать диаграмму только тогда, когда она обновляется или когда пользователь панорамирует/масштабирует ее.
Вы рисуете 100 строк по 10000 баллов ... В зависимости от используемого вами компьютера это может быть медленным. Не могли бы вы обновить код с более реалистичным примером. Кроме того, использование 'plt' для осей может вводить в заблуждение. Обычно люди используют 'import matplotlib.pyplot как plt'. – kikocorreoso
@kikocorreoso я изменил plt на подзаговор. –