Plotly:当交互绘图过多时,如何防止图形变为空白?

2024-04-25 22:42:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道为什么会发生这种情况,但当我绘制了9个以上的图形时,从第一个开始,这些图形就变成了空白

假设我画了10个图,每个图都有8个子图,除了第一个和最后一个子图,图都是空白的。当我绘制11个图形时,第一个和第二个图形变为空白

下面的代码工作得很完美,但太多的图形破坏了以前的绘图

days = df["DATE"].dt.floor("D").unique()
# create axis for each day
fig = plotly.subplots.make_subplots(len(days), subplot_titles=subplot_titles, vertical_spacing=0.03)


for i,d in enumerate(days):
    
    mask = (df["DATE"].dt.floor("D")==d)&(df["IOT_ID"]==iot_id)
    
    splt= px.line(df.loc[mask], x="DATE", y="Vibration")
    
    if len(list(splt.select_traces())) > 0:
        fig.add_trace(list(splt.select_traces())[0], row=i+1, col=1)
        


fig.update_layout(
    autosize=False,
    width=1000,
    height=5000
                )
fig.update_layout(title = "IoT ID = " + iot_id + ",  Titreşim")
fig.show()

我通过将渲染器更改为非交互式渲染器解决了这个问题

比如

fig.show(renderer="svg", width=1000, height=5000)

但如果所有的情节都是互动的,那就更好了

这是一个技术问题,还是有一种方法可以制作许多交互式的情节


Tags: 图形dffordatelendtfig绘制
1条回答
网友
1楼 · 发布于 2024-04-25 22:42:48

现在我知道你在一本Jupyter笔记本上绘声绘色地运行。也许是JupyterLab?这很可能是内存问题。JupyterLab的默认最大缓冲区大小存储在:

C:\Users\<YOU>\.jupyter\jupyter_notebook_config.py

如果您运行的是JupyterLab,则可以使用以下方法查找和编辑此文件:

jupyter lab  generate-config

同样的,你也有一个Jupyter笔记本

jupyter notebook  generate-config

在命令窗口中运行该行将返回:

Overwrite C:\Users\<YOU>\.jupyter\jupyter_notebook_config.py with default config? [y/N]

我通常选择[N],而是直接在提供的文件夹中打开该文件并编辑其中的值。在我这方面,文件的相关部分如下所示:

## Gets or sets the maximum amount of memory, in bytes, that is allocated  for
#  use by the buffer manager.
c.NotebookApp.max_buffer_size = 18000000000

您可以直接更改该值,保存它,然后再次启动JupyterLab

相关问题 更多 >