Highcharts 内部边界曲线

Highcharts border curve inside

我正在尝试让高图顶部边框向内弯曲

在 column/cylinder 上,如下所示。我试着玩弄

borderRadius 

在 css 但对我来说没有任何效果,我得到的关闭是这样的,这不是一个选项

jsfiddle 在这里用于 cyllinder

https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/cylinder/

这里是专栏。两者都适合我的用例。 https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/plotoptions/column-borderradius/

使用默认的 Highcharts API 不可能做到这一点,但可以通过包装原型函数来添加扩展。您可以包装 drawPoints 方法以将列形状类型从 rect 更改为带有弯曲顶部边框的 path

(function(H) {
    H.wrap(H.seriesTypes.column.prototype, 'drawPoints', function(proceed) {
        this.points.forEach(function(point) {
            var sArgs = point.shapeArgs;
            point.shapeType = 'path';
            point.shapeArgs = {
                'd': [
                    'M', sArgs.x, sArgs.y,
                    'Q', sArgs.x + sArgs.width / 2,
                    sArgs.y + sArgs.width / 2,
                    sArgs.x + sArgs.width, sArgs.y,
                    'L', sArgs.x + sArgs.width, sArgs.y + sArgs.height,
                    sArgs.x, sArgs.y + sArgs.height, 'z'
                ]
            }
        });

        proceed.apply(this, Array.prototype.slice.call(arguments, 1));
    });
}(Highcharts));

现场演示: http://jsfiddle.net/BlackLabel/as6y1uhn/

API参考:https://api.highcharts.com/class-reference/Highcharts#.wrap

文档: https://www.highcharts.com/docs/extending-highcharts