グラフに注釈を付けるためにflotsdrawOverlay
フックを使用しています。を使用して位置から y 軸座標を計算するp2c
と、わずかなオフセットがあることに気付きました。を突っ込んでみると、 を追加するとうまくいくように見えyaxis.box.top
ますが、これが正しいアプローチかどうかはわかりません。
ここでフィドル。
私が話していることをイメージしてください:
コード:
$(function () {
overlayThresholdHook = function(plot, ctx) {
var threshold = plot.getOptions().thresholdY;
if (threshold == -1) return;
var axes = plot.getAxes();
var xStart = axes.xaxis.box.left;
var xStop = axes.xaxis.box.width + xStart;
var yCor = axes.yaxis.p2c(threshold);// + axes.yaxis.box.top;
ctx.font = '9pt Arial';
ctx.strokeStyle = 'blue';
ctx.fillStyle = 'blue';
ctx.lineWidth = 2;
ctx.textAlign = 'left';
ctx.textBaseline = 'middle';
ctx.fillText(threshold+'',xStart,yCor);
ctx.beginPath();
ctx.moveTo(xStart+ctx.measureText(threshold+'').width+2, yCor);
ctx.lineTo(xStop, yCor);
ctx.stroke();
}
var options = { legend: {show: false}, yaxis: {min: -120, max: 150, show: true}, thresholdY: 100, hooks: {drawOverlay: [overlayThresholdHook]} };
var plot0 = $.plot($("#plot0"), [ {"data":[[1,-0.998195931084865],[45,2.26027181085055]],"color":"#C0D800","points":{"symbol":"circle"}}], options);
plot0.triggerRedrawOverlay();
});