【问题标题】:Is it possible to remove a pane in highstock/highcharts?是否可以删除 highstock/highcharts 中的窗格?
【发布时间】:2013-10-28 18:48:40
【问题描述】:

假设我的 highstock 中有两个窗格,我可以动态删除其中一个窗格吗?因此,如果我单击窗格,我应该能够捕获事件以及窗格的 id(yaXis),然后删除轴及其系列。 我已经动态添加了窗格,如下所示(所以我轴上有 Id 等)

chartX.addAxis({ // Secondary yAxis
                    id: studyName,
                    title: {
                        text: studyText
                    },
                    isX: false,
                    lineWidth: 2,
                    lineColor: '#08F',
                    //opposite: true,
                    top: startHeight,
                    height: 100,
                    offset: 0
                });
                var chartToUpdate=chartX.addSeries({
                        name: 'ADBE',
                        id: 'studyNew',
                        color: 'black',
                        data: studyData,
                        yAxis: studyName
                    });
                    $("#selectStudy").append("<option value='"+countNoOfStudiesAdded+"'>"+studyName+"</option>")
                }

是否可以如上所述删除窗格。任何其他有助于实现窗格动态删除的方法都将受到赞赏。

谢谢。

【问题讨论】:

    标签: highcharts highstock


    【解决方案1】:

    好的,我通过修补得到了解决方案...... 最好的方法是添加事件,这样每当我单击该系列的图例时,它的窗格就会被删除。

    var chartToUpdate=chartX.addSeries({
                            name: 'ADBE',
                            id: studyName,
                            color: 'black',
                            data: studyData,
                            yAxis: studyName,
                            events: {
                                legendItemClick: function(event) {
                                    this.yAxis.remove();
                                    countNoOfStudiesAdded--;
                                }
                            }
                        });
    

    如果有人想要我的问题的确切答案,那么解决方案是有一个下拉选择/选项和一个按钮。单击按钮后,我们从下拉列表中找到要删除的窗格,然后将其删除,如下所示:

        $('#remove').click(function() {
            if($("#selectStudy").val()!=0) {
                var studyToDelete=chartX.get($("#selectStudy option:selected").text());
                while(studyToDelete!=null) {
                    studyToDelete.remove();
                    $("#selectStudy option:selected").remove()
                    studyToDelete=chartX.get($("#selectStudy option:selected").text());
                }
            }
        });     
    

    其中idbuttonremoveidselection 下拉列表是selectStudy。所以我们发现所有附加到窗格的系列与yAxis的ID相同,并删除它们。

    【讨论】:

      【解决方案2】:

      您可以使用 Axis.remove() 函数来删除轴。

      http://api.highcharts.com/highcharts#Axis.remove()

      【讨论】:

        猜你喜欢
        • 2013-07-25
        • 1970-01-01
        • 1970-01-01
        • 2012-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多