在jqplot中打开和关闭标签

时间:2012-05-30 04:34:49

标签: jqplot

我正在尝试以编程方式打开和关闭pointLabels。我认为它会像这样工作:

    var data_ = [[1,1],[2,5],[4,9]];
    var graph = $.jqplot(id_graph, [data_], {
        series:[{pointLabels: { show:true } }]
        }
      );
    graph.series[0].pointLabels.show=false;
    graph.replot();

但是,这仍会显示点标签。

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

虽然这篇文章很老,但我找到了解决问题的方法:

var data_ = [[1,1],[2,5],[4,9]];
var graph = $.jqplot(id_graph, [data_], {
    series:[{pointLabels: { show:true } }]
    }
  );
graph.series[0].plugins.pointLabels.show=false;
graph.replot();

而不是使用

graph.series[0].pointLabels.show=false;

使用

graph.series[0].plugins.pointLabels.show=false;

就我而言,这很有用。

答案 1 :(得分:1)

我认为你想要的实际上是showMarker选项。由于在此代码中您没有设置点标签,因此它们永远不会显示。 showMarker可让您打开/关闭图表的点。

这是你的事实吗?否则请提供您使用的示例。

Here is a sample made for a similar issue.

Please see this sample.点击按钮,可以更改制造商的可见性。


<强>更新 This sample shows the solution,它使用上面介绍的方法,即在更改“点”标签的同时重新绘制图表。新参数。

jQuery(document).ready(function () {
    var data = [
        [1, 1],
        [2, 5],
        [4, 9]
    ];
    var graph;
    var isShowPointLabels = true;

    function makePlot(showPointLabels) {
        graph = $.jqplot("chart", [data], {
            series: [{
                pointLabels: {
                    show: showPointLabels
                }
            }]
        });
    }
    makePlot(isShowPointLabels);
    $("#click").click(function () {
        isShowPointLabels = !isShowPointLabels;
        makePlot(isShowPointLabels);
        graph.replot();
    });
});

在这种情况下,我无法弄清楚如何使用drawSeries(...)重新绘制单个系列,正如@Mark为marker所示,这是一个很好的做法这里。

答案 2 :(得分:1)

添加到Boro的答案,如果你想在一个系列上切换标记,那么它会更快:

graph.drawSeries({markerOptions:{show:false}},seriesIndex); //redraw single series

对于大量系列,调用重新绘制可能会很昂贵。

Revved fiddle here