我正在使用flot图来显示ecg信号。要求是图表背景应该看起来完全像ecg图表纸。flot图滴答线不统一
所有的内部灰线应该精确点排列绘制心电图表上的完美正方形。但是,有些线不均匀分布(它们彼此更接近),导致ecg图背景不正确。
这里是我的代码做什么:
标志: 我写了一个函数来生成对x和y轴标记。标记是图上的深粉色线条。这些标记将在4条灰线(它们组成较大的暗粉色框内的较小灰色方块)后在x和y轴上生成。这些似乎被正确绘制。
TICKS: 通过编写两个在x和y轴上生成滴答的函数,我重写了Flot图表本机滴答生成器。在x轴上,每40 ms代表一个刻度(一条灰线),y轴代表0.1毫伏代表一条灰线。即使函数生成具有正确值的滴答的正确数组,滴头图上的滴答间距也不是偶数。一些刻度线距离更近,这是不正确的。
并非所有的蜱都绘制不正确。但是,具有不规则间距的那些蜱的数量是显着的,并且在仔细检查图形时可见。首先,图的第四列和第一行有不均匀间隔的刻度线。 (在jsfiddle之外的浏览器上,这成为第3行和第3列)。这些不均匀的滴答在整个图表中随机重复。
我的代码如下所示。它也已被上传在JSFiddle
有没有人在绘制刻度线时经历了与flot图表类似的问题?我是否错误地使用了蜱?感谢您的帮助。
的JavaScript:
$(function() {
var d2=[];
// Make markings on x and y axis for drawing the more spaced grid lines
function markingsArray(axes) {
var markings = [];
for (var x = 200; x < axes.xaxis.max; x += 200)
markings.push({ xaxis: { from: x, to: x },color: "#EE1983" });
for (var y = -5; y < axes.yaxis.max; y += 0.5)
markings.push({ yaxis: { from: y, to: y },color: "#EE1983" });
return markings;
}
var options = {
series: {
shadowSize: 0, // Drawing is faster without shadows
lines: {
lineWidth: 1,
}
},
yaxis: {
ticks: function(axis){
var res = [];
var tickDrawCounter = 1;
var tickIncrement=0.1;
for(var i=-4.9;i<5;i+=tickIncrement){
if(tickDrawCounter<5){
res.push([parseFloat(i).toFixed(1),""]);
tickDrawCounter++;
}else{
tickDrawCounter=1;
}
}
return res;
},
min: -5,
max: 5
},
xaxis: {
ticks: function(axis) {
var res = [];
var tickDrawCounter = 1;
var tickIncrement=40;
for(var i=tickIncrement;i<8000;i+=tickIncrement){
if(tickDrawCounter<5){
res.push([parseFloat(i),""]);
tickDrawCounter++;
}else
tickDrawCounter=1;
}
return res;
},
min:0,
max:8000,
},
colors: ["#0000A0"], // color of the series plot
grid:{
markings: markingsArray,
backgroundColor:"pink",
markingsLineWidth:1,
}
}
$.plot("#placeholder",[ d2],options);
// Add the Flot version string to the footer
$("#footer").prepend("Flot " + $.plot.version + " – ");
}
);
嗨马克,感谢您的详细和非常合理的答复。现在,这一切对我来说都是有意义的。你是如何获得画布坐标值的?你能指导我吗? – abhogu 2014-09-19 04:13:23
@ user3855126,查看更新后的答案和小提琴。您可以使用轴的p2c方法获取画布坐标。相反,c2p将坐标转换为像素。 – Mark 2014-09-19 17:48:47
@ user3855126,查看更新以进行更新。 – Mark 2014-09-19 18:54:21