2017-02-03 6 views
1

調査の進行状況バーを作成しようとしています。進捗状況に応じて、各データポイントに色を動的に割り当てる必要があります。私はこれを管理していますが、機能の実行には時間がかかるようです。少なくとも、これは私の解釈であり、私はこれの多くを初めて熟知しています。非効率的な関数 - ハイチャートのデータポイントに色を割り当てる方法

私の質問です。どのようにデータポイントに色をより効果的に割り当てることができますか? 1つの関数に複数の色を作成して保存すると、Highcharts内のさまざまな色をどのように参照するのか分かりません。

http://jsfiddle.net/oskjerv/v4Lx69Lv/

は私の質問には、いくつか/あなたのいずれかに理にかなって願っています。

すべて最高です。

Highcharts.chart('container', { 
 
    chart: { 
 
     type: 'bar' 
 
    }, 
 
    title: { 
 
     text: '' 
 
    }, 
 
    xAxis: { 
 
     categories: [''], 
 
     visible:false, 
 
    }, 
 
    yAxis: { 
 
     min: 0, 
 
     visible:false 
 
     
 
    }, 
 
    legend: { 
 
     reversed: true, 
 
     enabled:false 
 
    }, 
 
    plotOptions: { 
 
     series: { 
 
      stacking: 'normal', 
 
      animation:false 
 
     } 
 
    }, 
 
    labels: { 
 
     \t enabled: false 
 
    }, 
 
    tooltip: { 
 
    \t \t \t enabled: false 
 
    }, 
 
    exporting:{ 
 
    \t \t \t enabled:false 
 
    }, 
 
    credits:{ 
 
    \t \t \t enabled:false 
 
    }, 
 
    series: [{ 
 
     name: 'Del1', 
 
     data: [.20], 
 
     color: getColourFirst() 
 
    }, { 
 
     name: 'Del2', 
 
     data: [.20], 
 
     color: getColourSecond() 
 
    }, { 
 
     name: 'Del3', 
 
     data: [.20], 
 
     color: getColourThird() 
 
    }, 
 
    { 
 
     name: 'Del4', 
 
     data: [.20], 
 
     color: getColourFourth() 
 
    }, 
 
    { 
 
     name: 'Del4', 
 
     data: [.20], 
 
     color: getColourFifth() 
 
    }] 
 
}); 
 

 
function getColourFirst(){ 
 
var colour1=['#D5D4D4']; 
 
return colour1; 
 
} 
 
function getColourSecond(){ 
 
var colour2=['#D5D4D4']; 
 
return colour2; 
 
} 
 
function getColourThird(){ 
 
var colour3=['#87bdd8']; 
 
return colour3; 
 
} 
 
function getColourFourth(){ 
 
var colour4=['#87bdd8']; 
 
return colour4; 
 
} 
 
function getColourFifth(){ 
 
var colour5=['#87bdd8']; 
 
return colour5; 
 
}
<script src="https://code.highcharts.com/highcharts.js"></script> 
 
<script src="https://code.highcharts.com/modules/exporting.js"></script> 
 

 
<div id="container" style="min-width: 310px; max-width: 200px; height: 100px; margin: 0 auto"></div>

答えて

0

ここでの主な問題は、あなたがcolor: ['#87bdd8']を言っているということです。これは有効な形式ではありません。要するに、代わりにcolor: '#87bdd8'を探しています。デモについてはthis updated JSFiddleを、構文の詳細についてはthe Colors descriptionを参照してください。

どのように色を解決するかについては、百万の方法がありますが、おそらく別のすべての機能不能な名前の代わりにインデックスを使用するものをお勧めします。例:

myColors = ['#D5D4D4','#D5D4D4','#87bdd8','#87bdd8','#87bdd8']; 

function getColor(index) { 
    return myColors[index%myColors.length]; 
} 

またはthis JSFiddle demonstrationを参照してください。

関連する問題