This will be a short technical post covering the process I used to optimize GUI (Graphical User Interface) updates for my kinematics simulator application (pictured below). Using these brief techniques, I was able to reduce the time spent rendering UI updates by 98.8%. For anyone who's interested, the project can be found here . It uses matplotlib for animated plots embedded within a tkinter GUI. If you're looking to embed matplotlib inside a GUI application, or even if you're working on standalone animated plots, I'm hoping this post will provide some useful tips for improving performance. Initial Performance For background, my goal was to achieve an update frequency of about 20fps (or around 50ms per frame). Looking at the logs shown below, it's clear that this wasn't achievable with the initial design. The overall elapsed time for each frame is shown, along with a breakdown between computing the frame data and actually updating (drawing) the plots. Initially...