【问题标题】:Highcharts not rendering properly on legend clicksHighcharts 在图例点击时无法正确呈现
【发布时间】:2015-10-16 11:35:27
【问题描述】:

问题: 当通过单击图例将一系列图表设置为隐藏和可见时,右侧的 Y 轴无法正确呈现:

enter code here

http://jsfiddle.net/yzqdekhr/5/

复制步骤

1) 点击 Diversion % Monthly Legend 并隐藏右侧 y 轴
2) 点击 Diverted Tons 和 Trash Tons Legend(完整图表将为空白)
3) 点击 Diversion % Monthly Legend 再次显示
4) 点击 Diverted Tons 和 Trash Tons Legend 显示图表数据

现在看到两个轴都有自己的情节线,这不应该是,见下图

预期结果 绘图线必须像第一次加载一样通用

【问题讨论】:

  • 无法理解问题,一切看起来都很好,我尝试使用您的步骤重现
  • 你试过上面的步骤了吗,一开始只有4条网格线/绘图线,但是执行上面的步骤后变成了9条,
  • 是的,尝试过你的步骤
  • 起初只有 4 条网格线/绘图线,但在执行以上步骤后变成 9 条,

标签: javascript jquery charts highcharts


【解决方案1】:

这是一个在此处报告为错误的已知问题 - https://github.com/highslide-software/highcharts.com/issues/4374

建议的解决方法是添加一个将重新对齐刻度的包装器。

H.wrap(H.Axis.prototype, 'setScale', function(p) {
        if(this.options.alignTicks !== false || this.chart.options.alignTicks !== false) {
             this.forceRedraw = true;   
        }
        p.call(this);
    });
})(Highcharts)

JSFiddle 示例:http://jsfiddle.net/q6sr1c0f/

【讨论】:

    【解决方案2】:

    问题在于辅助轴的作用方式 - 删除所有并绘制 Diversion % 时,没有数据或主轴可动态链接。

    在没有双轴线的情况下,我能想到的唯一方法是将第二个 Yaxis linkedTo 选项设置为第一个。

    这将确保如果没有第一个 Y 轴,绘图将不会呈现新行。这带来了另一个问题,因为现在根本没有绘制 Diversion % 线(如果其他线不可见),因此您必须为第一个 Y 轴设置 minmax 值。

    JSnippet Demo

    //Added to the second Yaxis:
    linkedTo: 0;
    
    //Added to the first Yaxis:
    min: 0;
    max: 100;
    

    【讨论】:

    猜你喜欢
    • 2019-08-18
    • 2017-09-03
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2016-05-09
    • 2020-05-02
    相关资源
    最近更新 更多