【问题标题】:Is there a way to disable a legend item by default?有没有办法默认禁用图例项?
【发布时间】:2015-06-12 17:53:25
【问题描述】:

嗨,Highcharts 社区,

我很想知道是否有一种方法可以默认禁用单个图例项。例如,如果有 3 个图例项 - “已接受”“理想”“预测”,是否可以在图表加载后仅禁用“预测”图例项而无需先单击图例项? (注意:我不想完全消除图例项,我只是希望它最初是灰色的,并且仍然保留单击后再次启用图例项的功能。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

    标签: highcharts


    【解决方案1】:

    是的,您可以这样做。在您不想显示的数据元素的series 选项中,将visible 属性设置为false。

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
        visible: false
    }, {
        data: [144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2]
    }]
    

    更新为在加载后设置可见性。 要处理您所说的无法注入visible 系列属性的情况,您可以使用series.update()chart.events.load 中执行此操作:

    chart: {
        events: {
            load: function () {
                this.series[0].update({
                    visible: false
                });
            }
        }
    },
    

    Demo.

    在这个例子中,我使用了东京系列的索引 0。您可以使用if 语句检查其他系列属性。

    【讨论】:

    • 如果系列选项没有指定任何数据怎么办?我的情节选项/系列看起来像这样,我不确定如何仅隔离一个图例元素。这是我的系列选项的外观:系列:{标记:{启用:假,状态:{悬停:{启用:真}}},connectNulls:真},
    • 您是如何使用数据构建您的系列的,如果没有数据,您又是如何做到的?如果您没有数据,为什么要创建系列?
    • 老实说,我不太了解它的工作原理。我正在处理现有代码,该代码使用 AppSDK,该 AppSDK 将 highcharts 用于其图表应用程序。我在整个应用程序代码中找到的唯一系列选项是我在上面的评论中提供的(甚至不在我正在更改的文件中)和其他类似的选项: series: [ { "as": "Prediction" , "field": "To Do"}] 我可以修改 "as" 参数,如果我将名称更改为 'Prediction' 以外的名称,它实际上会在我的图表图例上发生变化,但可见属性不会在此处响应。
    • 如果添加 visible 属性并更改“as”会发生什么?
    • 效果很好@wergeld!谢谢一堆。我还继续将该方法更改为.hide(),所以感谢@Pawel Fus
    【解决方案2】:

    下面的代码对我有用,(我正在绑定动态系列)

     $(Chart.series).each(function (i, val) {
            if (val.name == "All Entity") {
                 val.setVisible(true);
            }
       });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-24
      • 2015-11-21
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 2021-10-20
      • 2023-02-14
      相关资源
      最近更新 更多