同步Dygraphs,其中一些有双y轴
Synchronize Dygraphs where some have a double y-axis?
我在:https://groups.google.com/forum/#!主题/dygraphs-users/9 rl8-4-e35y同步4个dygraph。有些图表会有多个时间序列。然而,我希望有可能在一些图形中使用两个y轴,以说明并非所有数据都在相同(y)刻度上的事实,并且我不想要太多不必要的图形。这可能吗?
我使用的代码:
<script type="text/javascript">
files = [ "DataFiles/NRTData.csv", "DataFiles/data1.csv", "DataFiles/data1.csv", "DataFiles/data1.csv" ];
gs = [];
var blockRedraw = false;
for (var i = 1; i <= 4; i++) {
gs.push(
new Dygraph(
document.getElementById("div" + i),
files[i - 1], {
rollPeriod: 7,
//errorBars: true,
errorBars: false,
drawCallback: function(me, initial) {
if (blockRedraw || initial) return;
blockRedraw = true;
var range = me.xAxisRange();
for (var j = 0; j < 4; j++) {
if (gs[j] == me) continue;
gs[j].updateOptions( { dateWindow: range } );
}
blockRedraw = false;
}
}
)
);
}
</script>
我想我应该在上面的代码的某个地方插入下面的代码(从另一个[工作]dygraph),但是在尝试了许多选项后,我不能让它工作…
labels: [ 'DateTime', 'a', 'b' ],
ylabel: 'a ',
y2label: ' b ',
series : {
'a': {
axis: 'y1',
errorBars: false,
},
'b': {
axis: 'y2'
}
},
axes: {
y: {
// set axis-related properties here
drawGrid: true,
independentTicks: true,
axisLabelColor: 'green'
},
y2: {
// set axis-related properties here
labelsKMB: true,
drawGrid: true,
independentTicks: true,
axisLabelColor: 'blue'
},
x: {
axisLabelFormatter: function(d) {
return d.strftime('%Y %m-%d %H');
}
}
这里有一个示例jsfiddle
你必须创建两个选项对象
- opt1 =具有特定选项的对象
- opt2 = object with common options
则,在drawCallBack
var redraw = function(me, initial) {
if (blockRedraw || initial) return;
blockRedraw = true;
var range = me.xAxisRange();
for (var j = 0; j < 4; j++) {
if (gs[j] == me) continue;
gs[j].updateOptions( { dateWindow: range } );
}
blockRedraw = false;
};
var opt1 = {
// add function to this object too.
drawCallback: redraw,
labels: ['DateTime', 'a', 'b'],
ylabel: 'a',
y2label: 'b',
series : {
'a': {
axis: 'y1',
errorBars: false,
},
'b': {
axis: 'y2'
}
},
axes: {
y: {
// set axis-related properties here
drawGrid: true,
independentTicks: true,
axisLabelColor: 'green'
},
y2: {
// set axis-related properties here
labelsKMB: true,
drawGrid: true,
independentTicks: true,
axisLabelColor: 'blue'
},
x: {
axisLabelFormatter: function(d) {
return d.strftime('%Y %m-%d %H');
}
};
};
var opt2 = {
rollPeriod: 7,
//errorBars: true,
errorBars: false,
drawCallback: redraw
};
for (var i = 1; i <= 4; i++) {
gs.push(
new Dygraph(
document.getElementById("div" + i),
files[i - 1],
// use opt1 in i=1
(i === 1) ? opt1 : opt2)
)
);
}
相关文章:
- 在控制器和数据对象之间同步数据
- 同步调用,直到用户通过angular验证为访问者
- javascript函数同步
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- 音频和动画在javasctipt循环中同步
- 主线程上的同步XMLHttpRequest已弃用
- 主干网.与Safari同步问题
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 是否同步加载了LINK元素
- 异步获取数据使用JavaScript同步获取数据
- 以同步方式获取Javascript Promise的值
- ajax调用获胜't同步执行
- javascript函数中的异步与同步.(Node.js)
- 如何同步写入process.stdout
- JavaScript 函数同步执行
- HTML5应用程序数据库同步
- 同步Dygraphs,其中一些有双y轴
- 官方dygraphs.com的同步.html演示被破坏了:我的版本也是