Plotly 绘图无法在模态中自动缩放

Posted

技术标签:

【中文标题】Plotly 绘图无法在模态中自动缩放【英文标题】:Plotly plot failed to automatically scale inside a modal 【发布时间】:2018-11-17 02:00:43 【问题描述】:

我对 Plotly.js 和引导程序有疑问。 在模态中插入图形时,即使绘图宽度设置为 100%,并且绘图布局选项 autosize 设置为 true,绘图也不会自动缩放到模态宽度。

打开模式时,绘图是 100px 宽(而不是 100%),我必须以编程方式(或手动)单击“自动缩放”模式栏按钮才能正确显示绘图。

您可以使用此 codepen 看到这一点:

https://codepen.io/anon/pen/PaGOWv?editors=1010

<div class="modal-body">
    <div id="myDiv" style="width: 100%;"></div>
 </div>
 <!-- with plotly option: var layout = autosize: true; -->

如果有人知道如何在渲染后无需重新缩放绘图全角显示,我会非常高兴。

谢谢! 阿诺

PS:也发在github

【问题讨论】:

【参考方案1】:

出现问题是因为在模式打开之前加载了绘图。

您可以在正常工作的加载模式下生成绘图或更新绘图布局。

$('#myModal').on('shown.bs.modal', function (e) 
  Plotly.newPlot('myDiv', data, layout);
)

$('#myModal').on('shown.bs.modal', function (e) 
  Plotly.relayout('myDiv',layout);
)

Example here

【讨论】:

谢谢!如果我在这个模式中有一个标签面板怎么办?我仍然有从一个选项卡到另一个选项卡的问题。看到这个codepen 好的。 Plotly.Plot.resize() 似乎就足够了。

以上是关于Plotly 绘图无法在模态中自动缩放的主要内容,如果未能解决你的问题,请参考以下文章

在 plotly (R) 中调整绘图的大小

Qwt 绘图自动缩放不起作用

Plotly:在地图上绘制点和线时自动进入/退出到合适的区域

Plotly React 在重新渲染之间保持缩放和旋转

具有等轴和自动缩放的 QwtPlot

使用 Plotly-python 绘图后防止相机重置