Javascript jQuery/Flot:如何获取数据点的坐标?
我目前正在查看的示例是,但我不知道如何获取数据点的坐标。我不会单击绘图,因此无法使用事件绘图单击。现在我的问题是:有没有另一种方法可以在不点击的情况下获取数据点的x和y坐标?我将使用jQuery滑块高亮显示图形上的不同点,并希望在数据点旁边有一个工具提示Javascript jQuery/Flot:如何获取数据点的坐标?,javascript,jquery,flot,Javascript,Jquery,Flot,我目前正在查看的示例是,但我不知道如何获取数据点的坐标。我不会单击绘图,因此无法使用事件绘图单击。现在我的问题是:有没有另一种方法可以在不点击的情况下获取数据点的x和y坐标?我将使用jQuery滑块高亮显示图形上的不同点,并希望在数据点旁边有一个工具提示 提前感谢:)理论上,容器内的x,y坐标如下: $(function () { $('#container').mousemove(function (e) { $('.xPos').text(e.clie
提前感谢:)理论上,容器内的x,y坐标如下:
$(function () {
$('#container').mousemove(function (e) {
$('.xPos').text(e.clientX - $('#container').offset().left);
$('.yPos').text(e.clientY - $('#container').offset().top);
});
});
从:
各种各样的东西都塞进一个盒子里
axis对象,例如,您可以使用
GetAxis().xaxis.ticks以了解是什么
勾号代表X轴另外两个
有用的属性是p2c和c2p,
用于从数据转换的函数
指向画布打印空间的点空间
然后回来。这两个函数都返回相同的值
用打印偏移量进行偏移。
结合
plot.offset()
(网格区域相对于文档的偏移量),您应该拥有计算其余部分所需的所有工具plot.pointOffset()
也很有用。它返回一个点相对于包含div的位置。这有点晚了,但我在绘制图形后运行了此函数,以将标签放在线形图中绘制的数据点下方
$(document).ready(function(){
$(function(){
var data = [
{data: [[1, 5], [2, 10], [3, 15], [4, 15], [5, 10], [6, 5]], color: '#3a8df6'},
{data: [[1, 52], [2, 42], [3, 32], [4, 32], [5, 42], [6, 52]], color: '#ff0000'}
];
var options = {
lines: {show: true},
yaxis: {tickDecimals: 0, min: 0, max: 100, autoscaleMargin: null}
};
var graph = $.plot($('#graph'), data, options);
var points = graph.getData();
var graphx = $('#graph').offset().left;
graphx = graphx + 30; // replace with offset of canvas on graph
var graphy = $('#graph').offset().top;
graphy = graphy + 10; // how low you want the label to hang underneath the point
for(var k = 0; k < points.length; k++){
for(var m = 0; m < points[k].data.length; m++){
showTooltip(graphx + points[k].xaxis.p2c(points[k].data[m][0]), graphy + points[k].yaxis.p2c(points[k].data[m][1]),points[k].data[m][1])
}
}
});
});
function showTooltip(x,y,contents){
$('<div id="tooltip">' + contents + '</div>').css( {
position: 'absolute',
display: 'none',
top: y,
left: x
}).appendTo("body").fadeIn(200);
}
$(文档).ready(函数(){
$(函数(){
风险值数据=[
{数据:[[1,5],[2,10],[3,15],[4,15],[5,10],[6,5]],颜色:'#3a8df6'},
{数据:[[1,52],[2,42],[3,32],[4,32],[5,42],[6,52]],颜色:'#ff0000'}
];
变量选项={
行:{show:true},
yaxis:{tickDecimals:0,min:0,max:100,autoscaleMargin:null}
};
变量图=$.plot($('#图'),数据,选项);
var points=graph.getData();
var graphx=$('#graph').offset().left;
graphx=graphx+30;//替换为图形上画布的偏移量
var graphy=$('#graph').offset().top;
graphic=graphic+10;//您希望标签悬挂在点下方的高度
对于(var k=0;k
这是我的想法,但基本上,这个函数通过所有的数据点,并在轴中使用p2c函数,然后它将这个(带有一些填充)添加到图形本身的偏移量。然后它只使用普通的工具提示覆盖
此外,如果在条形图上使用此选项,则可以设置工具提示的宽度,使其文本居中对齐,然后如果希望所有标签排成一行,则只需在yaxis p2c函数中输入一个数字即可。然后使用填充将其放置在您想要的位置
希望这对将来的人有所帮助:)反过来呢?如果我有x偏移量,Flot能给我提供数据值吗?