python - jupyter notebook 中的绘图图形占用了大量内存

标签 python memory plotly jupyter

我可能在做一些非常愚蠢的事情,但我一直在我的 jupyter notebook 中使用 plotly offline

import plotly.offline as py
py.init_notebook_mode(connected=True)
from plotly.graph_objs import *

我正在尝试显示可以使用滑块导航的一系列图像。带有图像数据的整个 numpy 数组是 50 张图像 x 64 宽 x 64 高。

我把它放到下面的滑块函数中,我从网上找到的代码拼凑起来。返回的 Figure 对象本身并不是很大。然而,当 plotly 的iplot被调用,我的 jupyter notebook 在磁盘上的大小(以 ls -l 衡量)真的很大 - 像 15 MB,即使 numpy 源数据像 1MB。对于更大/多个数字,这变得难以管理。有谁知道发生了什么?
def slider_ims(imgs):

    imgs = np.flip(imgs,1) 

    data = [dict(
            type='heatmap',
            z = imgs[step,:,:],
            visible = False,
            showscale=False,
            xaxis="x",
            yaxis="y",
            name = 'z = '+str(step)) for step in np.arange(imgs.shape[0])]
    data[0]['visible'] = True


    steps = []
    for i in range(len(data)):
        step = dict(
            method = 'restyle',
            args = ['visible', [False] * len(data)],
            label = str(i)
        )
        step['args'][1][i] = True # Toggle i'th trace to "visible"
        steps.append(step)

    sliders = [dict(
        active = 0,
        currentvalue = {"prefix": "Frame: "},
        pad = {"t": 50},
        steps = steps,
        ticklen = 0,
        minorticklen = 0
    )]

    layout = Layout(
             sliders = sliders,
             font=Font(family='Balto'),
             width=800,
             height=600,
            )


    fig=Figure(data=data, layout=layout)
    py.iplot(fig)
    return fig

最佳答案

通常,plotly 的 plotly 有很大的尺寸。由于您使用内联绘图 (py.iplot) 将绘图保存在笔记本上,因此您的笔记本尺寸增加了。
如果您不希望笔记本如此大,只需使用普通绘图 (py.plot) 并将绘图保存在另一个文件中。
您可以阅读 plotly 的文档

关于python - jupyter notebook 中的绘图图形占用了大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079714/

相关文章:

c++ - 在 pthread 中使用堆分配 >100MB 的 RAM

r - 带有预先计算四分位数的彩色箱线图

python - 如何将 Dash 布局保存到 HTML 文件

delphi - 为什么我的程序会泄漏虚拟内存?

python - 关于 Monty Hall 问题的程序未返回预期结果

python - 如何在 tensorflow session 中使用mean_squared_error损失

python - VSCode 中的终端在 Ubuntu 18 中显示空白屏幕

python - 将行星经度转换为 360 度格式的 python 代码

python - 映射 pandas DataFrame 索引

macos - 在 OSX 上以编程方式确定物理内存大小