2016-09-02 19 views
4

HighChartsの問題、特に列の範囲のグラフで問題が発生しています。私は赤いの色をの負のの数字との青のの色のポジティブの番号にしたいと思います。負の数値のハイチャートの列の範囲の色を変更します。

現在のコードは、間隔が値を含むものにのみ値、及びブルー色のバーに色を与える:

$(function() { 

    $('#container').highcharts({ 

     chart: { 
      type: 'columnrange', 
      inverted: false 

     }, 

     title: { 
      text: 'Temperature variation by month' 
     }, 

     subtitle: { 
      text: 'Observed in Vik i Sogn, Norway' 
     }, 

     xAxis: { 
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
     }, 

     yAxis: { 
      title: { 
       text: 'Temperature (°C)' 
      } 
     }, 

     tooltip: { 
      valueSuffix: '°C' 
     }, 

     plotOptions: { 
      columnrange: { 
       dataLabels: { 
        enabled: true, 
        grouping:true, 
        formatter: function() { 
        if(this.y == 0) 
         return ""; 
        else 
         return this.y; 
        } 
       } 
      } 

     }, 

     legend: { 
      enabled: false 
     }, 

     series: [{ 
      name: 'Temperatures', 
      color: '#FF0000', 
      displayNegative: true, 
      negativeColor: '#0088FF' , 
      data: [ 
       [0, 9.4], 
       [-8.7, 6.5], 
       [-3.5, 9.4], 
       [-1.4, 19.9], 
       [0.0, 22.6], 
       [2.9, 29.5], 
       [9.2, 30.7], 
       [7.3, 26.5], 
       [4.4, 18.0], 
       [-3.1, 11.4], 
       [-5.2, 10.4], 
       [-13.5, 9.8] 
      ] 
     }] 

    }); 

}); 

現在のグラフは次のようになります。 enter image description here

r以下のようにする必要があります必要なesult:

一部・研究した後

enter image description here

Link to fiddle

+1

このとき、Highchartsはあなたのparamに応じた閾値とカラーポイントを設定することができます。例:http://jsfiddle.net/s3c82p6w/。負の部分を着色する必要がある場合は、各点(負の点/正の点)をポイントに分割する必要があります。例:http://jsfiddle.net/xdg67kuo/ –

+0

この[分割色の縦棒グラフ](http://stackoverflow.com/a/42570192/5817953)を見てください。閾値以下の数値の色範囲 – Sakthi

答えて

1

、ここ@Sebastianから上記のコメントに基づいて結論です:

あなたは、インデックスを追加することで、あなたのDataを変更することができますData[[Index,from,to],[SecondIndex,from,to]などのようなxAxisに一致させることができます。の負の値になると、同じ値にデータData[[IndexForNegative,from,to],[IndexForNegative,from,to]...を設定することができます。

$(function() { 

    $('#container').highcharts({ 

    chart: { 
     type: 'columnrange' 
    }, 

    title: { 
     text: 'Temperature variation by month' 
    }, 

    subtitle: { 
     text: 'Observed in Vik i Sogn, Norway' 
    }, 

    xAxis: { 
     categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
    }, 

    yAxis: { 
     title: { 
     text: 'Temperature (°C)' 
     } 
    }, 

    tooltip: { 
     valueSuffix: '°C' 
    }, 

    plotOptions: { 
     columnrange: { 
     negativeColor: 'red', 
     threshold: 0, 
     dataLabels: { 
      enabled: true, 
      formatter: function() {    
      } 
     } 
     } 
    }, 

    legend: { 
     enabled: false 
    }, 

    series: [{ 
     name: 'Temperatures', 
     data: [ 
       [0,0,9.4], 
       [1,-8.7,0],[1,0,6.5], //spliting all data that has negative values using the same index 
       [2,-3.5,0],[1,0,9.4], 
       [3,-1.4,0],[2,0,19.9], 
       [4,0.0],[4,0,22.6], 
       [5,2.9, 29.5], 
       [6,9.2, 30.7], 
       [7,7.3, 26.5], 
       [8,4.4, 18.0], 
       [9,-3.1,0],[9,0,11.4], 
       [10,-5.2,0],[10,0,10.4], 
       [11,-13.5,0],[11,0,9.8] 
      ] 
    }]  
    });  
}); 

http://jsfiddle.net/0ns43y47/

+0

これは私が探していたものです!だから、負と正を分けて同じインデックスを設定するだけです:)。驚くべきこと、私は以前にそれを試すことができなかった。共有していただきありがとうございます。 :D – Ales

+1

あなたの問題を解決できれば、それを回答として受け入れることもできます。http://stackoverflow.com/help/someone-answers – Simo

関連する問題