4

我正在尝试以编程方式打开和关闭 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();

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

谢谢你的帮助!

4

3 回答 3

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;

在我的情况下,这有效。

于 2016-01-05T15:14:18.683 回答
1

添加到 Boro 的答案中,如果您想在单个系列上切换标记,这样做会更快:

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

大量系列的调用 replot 可能会很昂贵。

Revved小提琴在这里

于 2012-05-31T16:25:19.397 回答
1

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

这就是你真正追求的吗?否则,请提供您使用的示例。

这是为类似问题制作的示例。

请参阅此示例。在按钮上单击会发生制造商可见性的变化。


更新: 此示例显示了使用上述方法的解决方案,即在更改“pointLabels”新参数的同时重新绘制绘图。

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,这将是一个很好的做法。

于 2012-05-30T10:06:33.323 回答