Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery/Flot:如何获取数据点的坐标?_Javascript_Jquery_Flot - Fatal编程技术网

Javascript jQuery/Flot:如何获取数据点的坐标?

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坐标?我将使用jQuery滑块高亮显示图形上的不同点,并希望在数据点旁边有一个工具提示


提前感谢:)

理论上,容器内的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能给我提供数据值吗?