说明:为了让直方图显示美观,要求直方图单列的颜色显示为渐变色,如下图。因为highcharts使用的是svg渲染,而svg中的线性渐变属性是:linearGradient,如果只是为了达到上图的效果,我们可以单独设置每个series的color属性。注:上图对应的series有两个子元素,分别是console.log(typeof(stockOptions.series));//arrayconsole.log(stockOptions.series.length);//2实现思路如下:stockOptions.series.forEach((item,seriesIndex)=>{item.color={linearGradient:{x1:0,y1:1,x2:0,y2:0},stops:[[0,Highcharts.color("#fff").get('rgb')],[1,Highcharts.color(colorArr[seriesIndex]).get('rgb')]]}})linearGradient:{x1,y1,x2,y2}属性用于指定梯度区域和梯度方向。例子中的渐变是垂直渐变(x始终为0),在y方向上,渐变从point1(对应100%)开始,到point2(对应0%)结束。在实际效果中,柱子的颜色从上到下由stops[1]的颜色逐渐变为stops[0]的颜色(colorArr[seriesIndex]to"#fff"gradient)。stops:表示一个渐变过程,在0到1之间表示将列分成多个部分进行颜色设置。该示例分为两部分,第一部分和最后一部分。(stops是从小到大写的,不要把stepping反了,没试过把stepping反了会怎么样?stops:[[0,color0],[0.5,color1],[1,color2],])更进一步,如果视觉要求列以某个y值为界,大于这个值的列的颜色会逐渐从#A变为#B,小于的列的颜色这个值会从#C逐渐变为#D,如下图所示,那么仅通过给stockOptions.series中的每一项设置渐变色是不可能的。这时候我们就需要在回调函数中完成动态颜色切换效果。主要原理是遍历series数组中的每一个点(points也是一个数组),遍历points中的数据点point,通过比较该点的y值与阈值依次更新其颜色。如果是Highcharts引入的,回调函数应该在创建Highcharts实例的时候配置。如下图,如果是在vue项目中,使用highcharts-vue方法将回调作为属性引入到组件中
