Вызов get_window_extent()
для связывания MathText Текстовые объекты в цикле увеличивают используемую память, несмотря на удаление текстовых объектов.Минимальный рабочий пример:
import matplotlib.pyplot as plt
import random
fig = plt.figure()
renderer = fig.canvas.get_renderer()
sample_text = ' '.join("${}$".format(random.random())
for _ in range(1000))
while True:
# This wouldn't make memory usage grow:
# text = sample_text
# This wouldn't either:
# text = ' '.join("{}".format(random.random())
# for _ in range(1000))
# But this does:
text = ' '.join("${}$".format(random.random())
for _ in range(1000))
# ...when combined with get_window_extent():
plotted_text = fig.text(0, 0, text)
plotted_text.get_window_extent(renderer)
plotted_text.remove()
Есть идеи, почему и как это можно предотвратить?