我在 Highstock (Highcharts) 中遇到了这个问题。当系列的裁剪属性设置为 true(默认值)时,裁剪区域可能不会更新/重新计算。
每次我们创建一个高度为 A 的新轴时都会出现该错误,将其高度更改为 B,删除它并再次使用相同的 ID 创建一个高度为 A 的新轴。使用已移除轴的 clipPath 裁剪创建的轴。
简单来说,逻辑如下:
chart.addAxis({..., id: Y_AXIS_TEST_ID, height: '100%'});
chart.addSeries({...});
chart.get(Y_AXIS_TEST_ID).update({height: '80%'});
chart.get(Y_AXIS_TEST_ID).remove();
chart.addAxis({..., id: Y_AXIS_TEST_ID, height: '100%'});
chart.addSeries({...});
要重现该问题,请按照下列步骤操作:
- 单击“使用数据添加轴”按钮。
- 单击“更改高度”按钮。
- 单击“删除”按钮。
- 再次单击“使用数据添加轴”按钮。
结果:轴内的系列被裁剪为 80% 轴的高度生成的 clipPath;预期:带有数据的全新轴,如第 1 页所示
在这种情况下,如果我们每次创建轴时都生成新的 ID,则可以解决此问题。
- 单击“删除”按钮。//或者刷新JSFiddle
- 启用“每次生成新 ID”复选框。
- 按照步骤 1 - 4。
是否有一些情况可以避免每次创建轴时生成新 ID 的混乱?