首页 > 解决方案 > Highcharts 内边框曲线

问题描述

我正在尝试让 highcharts 顶部边框在内部弯曲 在此处输入图像描述

在下面的柱子/圆柱体上。我试着玩弄

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/

标签: javascriptcsshighchartsborder

解决方案


使用默认的 Highcharts API 是不可能的,但是可以通过包装原型函数来添加扩展。您可以使用 wrapdrawPoints方法将柱形类型从弯曲的顶部边框更改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


推荐阅读