如何强制框选工具显示在绘图中?

Jon*_*Jon 5 javascript plotly

我按照这个例子来选择一个感兴趣的区域:

http://codepen.io/etpinard/pen/zBWRZb

<head>
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
  <div id="graph"></div>
</body>

<script>
var gd = document.getElementById('graph');
var d3 = Plotly.d3;
var formatter = d3.format('.2f');

Plotly.plot(gd, [{
  mode: 'lines',
  x: Array.apply(null, Array(100)).map(() => Math.random()),
  y: Array.apply(null, Array(100)).map(() => Math.random()),
}], {
  dragmode: 'select'
});

gd.on('plotly_selected', (eventData) => {
  var xRange = eventData.range.x;
  var yRange = eventData.range.y;

  Plotly.relayout('graph', 'title',
`x range: [${xRange.map(formatter).join(', ')}]<br>
 y range: [${yRange.map(formatter).join(', ')}]`
  );
});
</script>
Run Code Online (Sandbox Code Playgroud)

但是,当我将模式值更改为“线”而不是“标记”时,绘图中不存在框选择按钮(通常应位于平移按钮旁边)。我仍然可以在页面呈现后立即进行框选择,但如果我选择缩放工具,则无法返回框选择。

Jon*_*Jon 4

我发现可以明确指定应显示哪些按钮:

Plotly.plot(gd,
            [
                {
                    type: "scatter",
                    x: time,
                    y: current,
                }
            ],
            {},
            {modeBarButtons:
             [
                 ['zoom2d'],
                 ['zoomIn2d'],
                 ['zoomOut2d'],
                 ['autoScale2d'],
                 ['select2d'],
                 ['toImage']
             ]
            }
           );
Run Code Online (Sandbox Code Playgroud)

这似乎强制这些按钮出现,无论绘图类型如何。