Pyplot (случайный?) Изменения в размере графика с stati c rcParams - PullRequest
0 голосов
/ 21 февраля 2020

Я использую ноутбук Jupyter для поэтапного запуска программы большого размера sh. Как часть кода - для того, чтобы графики, которые я строю, были видны при отсутствии прокрутки windows - я использую:

%%javascript
IPython.OutputArea.prototype._should_scroll = function(lines) {
    return false;
}

, которые я первоначально нашел в stackoverflow.

Я также использую:

plt.rcParams["figure.figsize"] = [16,12] 

(matplotlib.pyplot как plt, как обычно), чтобы контролировать размер выходных графиков.

Данные считываются и код проходит через него. В секции, выполняющей черчение (все внутри одного l oop), он создает несколько графиков нужного размера с правильными аннотациями, а затем неожиданно и явно создает действительную диаграмму, но уменьшенную до размера почтовой марки. Это будет сделано для нескольких графиков - и затем вернется к нормальному размеру, а затем снова сделает то же самое.

Выше приведен единственный код, который я использую для явного управления размерами графиков, и оба находятся вне l oop. Внутри l oop - и каждый раз, когда он выполняется, - есть несколько вызовов подпрограмм plt.

Это почти как если бы параметры в plt.rcParams перезаписывались, но так как они находятся за пределами l oop, они не должны быть, не так ли?

Есть мысли о том, почему это происходит? -и конечно как это исправить. Может ли оверплоттинг (который я делаю на некоторых графиках) как-то с этим связан? Следует ли изменить javascript?

Большое спасибо

1 Ответ

0 голосов
/ 03 марта 2020

ОК, чем больше я смотрю на это и пытаюсь создать MRE (см. Комментарии выше), тем больше я прихожу к выводу, что проблема заключается в том, что я передаю «вещи» между вызывающими подпрограммами и библиотека. Как таковая, это особенность моего кода / системы и, вероятно, не представляет большого интереса. Если возникнет что-то общее, я опубликую это здесь или в соответствующем месте.

========================= ====================================================

Это был мой первоначальный ответ в прошлом месяце, однако, взглянув на это гораздо дальше, кажется, не - проблема с передачей между библиотеками и вызывающей программой, как это также происходит в программах, которые не позвоните в библиотеки. Похоже, что-то в том, как rcParams взаимодействует с ноутбуком Jupyter, настроенным на моей машине (это довольно базовая c конфигурация).

В настоящее время я не могу продвинуться дальше.

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