Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
JQPlot replot。更新点标签_Jqplot - Fatal编程技术网

JQPlot replot。更新点标签

JQPlot replot。更新点标签,jqplot,Jqplot,我有一个条形图,我需要更新它的数据,还有一个点标签。数据正在更新,但点标签与上一个绘图相同。如何更新点标签 // here are labels. var my_labels = [["2 g. <br /> 47$"],["2 g. <br /> 48$"],["7 g. <br /> 49$"],[],["10 g. <br /> 51$"],["6 g. <br /> 52$"],["4 g. <br />

我有一个条形图,我需要更新它的数据,还有一个点标签。数据正在更新,但点标签与上一个绘图相同。如何更新点标签

// here are labels.

      var my_labels = [["2 g. <br /> 47$"],["2 g. <br /> 48$"],["7 g. <br /> 49$"],[],["10 g. <br /> 51$"],["6 g. <br /> 52$"],["4 g. <br /> 53$"]];
            $.jqplot.config.enablePlugins = true;
            var s1 = [2, 6, 7, '' , 10, 6, 4];
            var ticks = [47,48, 49, 50, 51, 52, 53];
           // initializing plot  
            plot1 = $.jqplot('chart1', [s1], {
                // Only animate if we're not using excanvas (not in IE 7 or IE 8)..
                        canvasOverlay: {
                show: true,
                objects: [
                    {verticalLine: {
                        name: 'barney',
                        x: 4,
                        lineWidth: 2,
                        color: 'gray',
                        shadow: false
                    }}
                ]
            },
                animate: !$.jqplot.use_excanvas,
                seriesDefaults:{
                    renderer:$.jqplot.BarRenderer,

// setting labels to my own defined labels




    pointLabels: { show: true, labels : my_labels, escapeHTML: false },
                    color: '#E6D49F'
                },
                axes: {
                    xaxis: {
                        renderer: $.jqplot.CategoryAxisRenderer,
                        ticks: ticks,
                        max: 100
                    }
                },
                highlighter: { show: false },

            });

            $('#chart1').bind('jqplotDataClick', 
                function (ev, seriesIndex, pointIndex, data) {
                    $('#info1').html('series: '+seriesIndex+', point: '+pointIndex+', data: '+data);
                }
            );
        });
    // reploting function call
    setInterval(function(){replot()},4000);
        var a = 1;
        var labels;
// reploting function
        function replot()
        {
        var data;

    switch(a)
    {
    case 1:
      data = [[1,4], [2,6], [3, 8],[4,0],[5, 9],[6, 7],[7, 3]];
      labels = [["4 g. <br /> 47$"],["6 g. <br /> 48$"],["8 g. <br /> 49$"],[],["9 g. <br /> 51$"],["7 g. <br /> 52$"],["3 g. <br /> 53$"]];
      break;
    case 2:
      data = [[1,3], [2,7], [3, 7],[4,0],[5, 8],[6, 6],[7, 4]];
      labels = [["3 g. <br /> 47$"],["6 g. <br /> 48$"],["8 g. <br /> 49$"],[],["9 g. <br /> 51$"],["7 g. <br /> 52$"],["3 g. <br /> 53$"]];
      break;
    case 3:
      data = [[1,5], [2,5], [3, 9],[4,0],[5, 10],[6, 8],[7, 2]];
      labels = [["5 g. <br /> 47$"],["6 g. <br /> 48$"],["8 g. <br /> 49$"],[],["9 g. <br /> 51$"],["7 g. <br /> 52$"],["3 g. <br /> 53$"]];
      break;
    }
//updating data
        plot1.series[0].data = data;
//trying to update pointlabels
        plot1.series[0].pointLabels.labels = labels;
        plot1.replot();
        if(a == 3)
        a = 0;
        a++;
        }

我也有同样的问题,认为我做错了什么。但是现在看到其他人也有同样的问题,似乎问题出在插件本身

我找到了一个解决这个问题的方法,从我的

replot之后,请尝试直接更新包含点标签的div,如下所示

for(i=0;i<labels.length;i++){
    $("#chart1").find('.jqplot-series-0.jqplot-point-'+i).html(''+labels[i]);
}

我希望有一天有人能提供更好的解决方案,而不是这种解决方法。

我也有同样的问题,认为我做错了什么。但是现在看到其他人也有同样的问题,似乎问题出在插件本身

我找到了一个解决这个问题的方法,从我的

replot之后,请尝试直接更新包含点标签的div,如下所示

for(i=0;i<labels.length;i++){
    $("#chart1").find('.jqplot-series-0.jqplot-point-'+i).html(''+labels[i]);
}

我希望有人有一天会提供更好的解决方案,而不是此解决方案。

我知道这是一个旧线程,但我刚刚遇到了相同的问题,并在$.jqplot.PointLabels.draw函数的第一行添加了以下内容,该函数在重新绘制之前删除了所有以前添加的标签:


$'.jqplot点标签',plot.target.remove

我知道这是一个旧线程,但我刚刚遇到了相同的问题,并在$.jqplot.PointLabels.draw函数中添加了以下内容作为第一行,该函数在重新绘制之前删除所有以前添加的标签:

$'.jqplot点标签',plot.target.remove