0

我在高图中有一个样条图。它的高度是零到一。我想让 y=0.5 线上方的所有点都具有红色背景色,而这条线下方的点具有绿色背景色。我怎样才能在highchart中做到这一点?

4

3 回答 3

0

您可以很好地创建一个实用方法,将您的series.datafrom[[x,y],...]转换为[{ x:xVal,y:yVal,color:color,...}...]

这个函数可能看起来像这样

function groupDataByValue(data, threshold, aboveColor, belowColor) {
    var newData = [];
    $.each(data, function() {
        var dataPoint = {
            x: this[0],
            y: this[1],
            marker: {}
        };
        var color;
        if (dataPoint.y > threshold) {
            color = aboveColor;
        } else {
            color = belowColor;
        }
        dataPoint.color = color;
        dataPoint.marker.fillColor = color;
        newData.push(dataPoint);
    });
    return newData;
}

在设置series.data属性之前将其传递给此方法并将结果值设置为series.data

基于值的着色点@ jsFiddle

于 2012-09-10T17:11:22.207 回答
0

“此功能计划用于 Highcharts 3.0。我们编写了一个临时 hack,仅限于 SVG 浏览器。这意味着它在 IE6、7 和 8 中不起作用。请参阅http://jsfiddle.net/highcharts/PMyHQ / "
-@orstein Hønsi(管理员,Highcharts JS)-2011 年 11 月 14 日

资料来源:http ://highcharts.uservoice.com/forums/55896-general/suggestions/787281-threshold-option-for-colors

于 2012-09-10T16:47:14.010 回答
0

像这样试试

$(document).ready(function(){
     $("#points").each(function(){
          if((this).val()>0.5)
              (this).css("background-color","red");
  });
})

考虑到您的所有点都必须具有 id“点”,并且它们的值必须是它们各自的高度(0.1,0.2,....像那样)

于 2012-09-10T09:39:34.303 回答