2012-10-25 34 views
3

我正在使用Highcharts,我想用不同的顏色填充折線圖中的標記。例如:當變量「a」爲1時,用紅色填充標記,否則用綠色填充。有可能這樣做嗎?highchart中的條件標記顏色

下面是代碼:http://jsfiddle.net/EnyCJ/1/

我試圖做到這一點與格式,但它不工作。有什麼建議麼?

var a=1; 

plotOptions: { 
series: { 
    marker: { 
    fillColor: { 
    formatter: function() { 
     if (a == 1) { 
     return 'red' 
     } else { 
     return 'green' 
     } 
    } 
    }, 
    lineWidth: 2, 
    } 
} 
}, 

回答

5

嘗試:

fillColor: a==1 ? "#ff0000" : "#00ff00" 

+0

這工作的。謝謝,你是天才。 – repincln

+0

只有一個問題。而不是常規變量a,我有數組p(請參閱demo - http://jsfiddle.net/jFmSD/)。我想檢查p [something]是否等於1.我寫p [this.x],它不起作用。任何想法如何解決? – repincln

+0

this.x是指什麼?如果p是一個數組,你應該參考,例如第一個元素,如下所示:'p [0]' –

1

如何從圖表移除邏輯,只會用它來顯示數據?

var a = 1, 
    color = a ? 'red' : 'green'; 

plotOptions: { 
    series: { 
     marker: { 
      fillColor: color, 
      lineWidth: 2, 
     } 
    } 
} 
+0

這也可以,謝謝。 – repincln

0

擴大在Asad Saeeduddin's answer

我使用的是圓環餅圖中dataLabels和所提出的解決方案是非常具體的奇異局面。我想根據條件邏輯更改單個餅圖切片的標籤文本顏色,比較值。

只是分享,因爲我的搜索把我帶到這裏。

data: outerData, 
dataLabels: { 
    formatter: 
     function() { 
      if ((outerData[this.point.x].y > innerData[this.point.x].y) && (this.point.x != 0)) { 
       return this.y > 0.1 ? '<span style="fill: red;">' + this.point.name + ': ' + this.y + '% ' + '</span>' : null; 
      } else { 
       return this.y > 0.1 ? '<span style="fill: #006400;">' + this.point.name + ': ' + this.y + '% ' + '</span>' : null; 
      } 
     } 
    } 
1

您還可以使用區域:

$(function() { 
    $('#container').highcharts({ 
     series: [{ 
      data: [-10, -5, 0, 5, 10, 15, 10, 10, 5, 0, -5], 
      zones: [ 
       { 
       value: 0, 
       color: '#f7a35c' 
       }, 
       { 
       color: '#90ed7d' 
       } 
      ] 
     }] 
    }); 
}); 

Try it in jsfiddle.net