首页 > 解决方案 > 静态 rcParams 的绘图大小的 Pyplot(随机?)变化

问题描述

我正在使用 Jupyter notebook 逐步运行一个大型程序。作为代码的一部分 - 为了让我正在绘制的图表在非滚动窗口中可见 - 我正在使用:

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

我最初在stackoverflow上找到的。

我也在使用:

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

(matplotlib.pyplot as plt,像往常一样)以控制输出图的大小。

数据被读入,代码循环通过它。在进行绘图的部分(都在一个循环内)它正在生成许多大小合适的绘图,带有正确的注释,然后它会突然明显地生成一个有效的图表,但缩小到邮票大小。它将为一些地块执行此操作 - 然后恢复到正常大小,然后再次执行相同的操作。

以上是我用来显式控制绘图大小并且都位于循环之外的唯一代码。在循环内部 - 每次执行时 - 都会多次调用 plt 例程。

就好像 plt.rcParams 中的参数被覆盖了,但由于它们在循环之外,它们不应该是不应该的吗?

关于为什么会发生这种情况的任何想法?-当然还有如何解决它。过度绘图(我在某些地块上所做的)与它有关吗?应该修改javascript吗?

非常感谢

标签: javascriptpythonmatplotlib

解决方案


好的,我越看它并尝试创建一个 MRE(参见上面的评论),我就越得出结论,即问题在于我在调用例程和库之间传递“东西”的方式。因此,这是我的代码/系统的一个特质,可能没有更广泛的兴趣。如果出现一般感兴趣的内容,我会在此处或适当的位置发布。

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

这是我上个月的初步回应,但是经过进一步研究,在库和调用程序之间传递似乎不是问题,因为它也发生在不调用库的程序中。这似乎是 rcParams 与我机器上配置的 Jupyter notebook 交互的方式(这是一个相当基本的配置)。

我目前无法更进一步。


推荐阅读