matplotlib се отървете от изхода max_open_warning

Написах скрипт, който извиква функции от QIIME, за да изгради куп графики, наред с други неща. Всичко върви добре докрай, но matplotlib винаги хвърля следната обратна връзка за всеки сюжет, който създава (супер досадно):

/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py:412: RuntimeWarning: Отворени са повече от 20 фигури. Фигури, създадени чрез интерфейса pyplot (matplotlib.pyplot.figure), се запазват до изрично затваряне и може да консумират твърде много памет. (За да контролирате това предупреждение, вижте rcParam figure.max_num_figures). max_open_warning, RuntimeWarning)

Намерих тази страница, която изглежда обяснява как да поправя този проблем, но след като следвайте указанията, нищо не се променя:

import matplotlib as mpl
mpl.rcParams[figure.max_open_warning'] = 0

Влязох във файла, след като извиках matplotlib директно от python, за да видя кой rcparams файл трябва да проуча и ръчно промених 20 на 0. Все още няма промяна. В случай, че документацията е неправилна, аз също я промених на 1000 и все още получавам същите предупредителни съобщения.

Разбирам, че това може да е проблем за хора, работещи на компютри с ограничена мощност, но това не е проблем в моя случай. Как мога да накарам тази обратна връзка да изчезне за постоянно?


person Brassmonkey    schedule 15.12.2014    source източник
comment
Опитайте това: stackoverflow.com/questions/ 21884271/   -  person Aswin    schedule 06.01.2016
comment
Липсва само един начален цитат преди ключа на речника, иначе това е правилно!   -  person smcs    schedule 27.11.2020


Отговори (3)


Опитайте да го настроите по този начин:

import matplotlib as plt
plt.rcParams.update({'figure.max_open_warning': 0})

Не съм сигурен точно защо това работи, но отразява начина, по който промених размера на шрифта в миналото и изглежда коригира предупрежденията вместо мен.

person robb    schedule 20.12.2015

Друг начин, който току-що опитах и ​​работи:

import matplotlib as mpl
mpl.rc('figure', max_open_warning = 0)
person ipramusinto    schedule 27.04.2019

Вижте тази статия: https://heitorpb.github.io/bla/2020/03/18/close-matplotlib-figures/

По същество се казва plt.close(fig1), след като сте готови с fig1. По този начин няма да имате твърде много смокини, които витаят в паметта.

person SeanSean    schedule 16.06.2021