jqPlot を使用して 1 つのページに 3 つの個別のグラフを作成したいのですが、カーソルが 1 つのグラフを横切って移動すると、垂直線も他のグラフを横切って移動するように jqPlot を構成することは可能ですか?
1418 次
2 に答える
2
また、2つのチャートで同時に垂直線を追跡する必要があり、ボロの答えを出発点として使用して、これが私が思いついたものです:
var mydata1 = [
[0, 3],
[1, 7],
[2, 9],
[3, 1],
[4, 4],
[5, 6],
[6, 8],
[7, 2],
[8, 5]
];
var mydata2 = [
[0, 5],
[1, 4],
[2, 8],
[3, 7],
[4, 2],
[5, 8],
[6, 5],
[7, 1],
[8, 3]
];
$(document).ready(function () {
var plot1 = $.jqplot(
'chart1', [mydata1], {
seriesDefaults: {
showMarker: false
},
cursor: {
show: true,
showTooltip: false,
showVerticalLine: true,
showHorizontalLine: false
},
highlighter: {
show: true,
showTooltip: false
},
canvasOverlay: {
show: true,
objects: [{
verticalLine: {
show: false,
name: "vline1",
xOffset: '-1',
yOffset: '0',
xaxis: "xaxis",
lineWidth: '0.5',
shadow: false
}
}]
}
});
var plot2 = $.jqplot(
'chart2', [mydata2], {
seriesDefaults: {
showMarker: false
},
cursor: {
show: true,
showTooltip: false,
showVerticalLine: true,
showHorizontalLine: false
},
highlighter: {
show: true,
showTooltip: false
},
canvasOverlay: {
show: true,
objects: [{
verticalLine: {
show: false,
name: "vline2",
xOffset: '-1',
yOffset: '0',
xaxis: "xaxis",
lineWidth: '0.5',
shadow: false
}
}]
}
});
var co1 = plot1.plugins.canvasOverlay;
var co2 = plot2.plugins.canvasOverlay;
var line1 = co1.get('vline1');
var line2 = co2.get('vline2');
$("#chart1").bind('jqplotMouseMove', function (ev, gridpos, datapos, neighbor, data) {
line2.options.show = true;
line2.options.x = datapos.xaxis;
co2.draw(plot2);
});
$("#chart2").bind('jqplotMouseMove', function (ev, gridpos, datapos, neighbor, data) {
line1.options.show = true;
line1.options.x = datapos.xaxis;
co1.draw(plot1);
});
$("#chart1").bind('jqplotMouseLeave', function () {
line2.options.show = false;
co2.draw(plot2);
});
$("#chart2").bind('jqplotMouseLeave', function () {
line1.options.show = false;
co1.draw(plot1);
});
});
于 2013-08-12T20:43:23.953 に答える
1
はい、できます。あなたのアプローチでは、プロット上のマウスの位置を追跡する必要があります。
$('#chart').bind('jqplotMouseMove', function(ev, seriesIndex, pointIndex, data) {
//do your painting here
});
次に、プロット内でマウスを動かすたびに、他のプロットのキャンバスでカスタム ペイントを行います。この例では、コード レベルからのプロット データのハイライトを示すカスタム ペイントを行います。
于 2012-05-28T16:00:14.477 に答える