|
|
发表于 2026-3-1 16:01:41
|
显示全部楼层
在 Plotly.js 中更新柱线组合图的数据,同样可以使用 Plotly.restyle 函数。
以下是一个简单的例子,展示如何创建一个柱线组合图,并更新其 values、labels 和 text 数据。
首先,创建一个包含柱状图和折线图的图表:
- // 初始数据
- var data = [
- {
- x: ['A', 'B', 'C'],
- y: [10, 20, 30],
- type: 'bar',
- text: ['Bar A', 'Bar B', 'Bar C'],
- name: '柱状图'
- },
- {
- x: ['A', 'B', 'C'],
- y: [5, 15, 25],
- type: 'scatter',
- mode: 'lines+markers',
- text: ['Line A', 'Line B', 'Line C'],
- name: '折线图'
- }
- ];
- var layout = {
- title: '柱线组合图示例'
- };
- Plotly.newPlot('myDiv', data, layout);
复制代码
假设图表显示在 id 为 myDiv 的 div 中。
现在,更新柱状图的 values(y 值)、labels(x 值或 text)和 text 数据:
- // 更新柱状图的数据
- var newBarY = [15, 25, 35];
- var newBarText = ['New Bar A', 'New Bar B', 'New Bar C'];
- Plotly.restyle('myDiv', {
- y: [newBarY],
- text: [newBarText]
- }, [0]); // [0] 表示第一个轨迹(柱状图)
- // 更新折线图的数据
- var newLineY = [10, 20, 30];
- var newLineText = ['New Line A', 'New Line B', 'New Line C'];
- Plotly.restyle('myDiv', {
- y: [newLineY],
- text: [newLineText]
- }, [1]); // [1] 表示第二个轨迹(折线图)
复制代码
如果你想同时更新多个轨迹,可以指定多个索引。例如,更新两个轨迹的 x 标签:
- var newLabels = ['X1', 'X2', 'X3'];
- Plotly.restyle('myDiv', {
- x: [newLabels, newLabels] // 两个轨迹都使用相同的 x 值
- }, [0, 1]); // 更新索引 0 和 1 的轨迹
复制代码
注意:Plotly.restyle 的第二个参数是一个对象,属性值通常是数组,数组中的每个元素对应一个轨迹。第三个参数是轨迹索引数组,指定要更新的轨迹。
通过这种方式,你可以动态更新柱线组合图的各个数据属性。
确保代码中的 div ID 与你的 HTML 元素匹配。
这样,你就可以灵活地更新图表数据了。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|