2017-01-24 5 views
0

Chart.jsでは、ツールチップの色を設定できません。「2016年12月」のラベルに凡例の色(青色)と同じ色を付けたいとします。Chart.jsのツールチップラベルの色を設定する方法

enter image description here

以下を参照してください。

graphOptions.tooltips = { 
        enabled: true, 
        mode: 'single', 
        displayColors: false, 
        callbacks: { 
         title: function (tooltipItem, data) { 
          if (tooltipItem.length > 0) { 
           return tooltipItem[0].xLabel + ': ' + tooltipItem[0].yLabel +" Scans"; 
          } 
          return ""; 
         }, 
         label: function (tooltipItem, data) { 
          if (data.datasets.length > 0) { 
           return data.datasets[tooltipItem.datasetIndex].label; 
          } 
          return ''; 
         }, 
         labelColor: function (tooltipItem, chartInstace) { 
          if (data.length > 0) { 
           return data[tooltipItem.datasetIndex].backgroundColor; 
          } 
         } 
        } 
       }; 

答えて

0

実は、問題はlabelColorコールバックであなたはのbackgroundColorを返すということです。以下は、上記のコールバックメソッドの正しい戻り値の型です。

function (tooltipItem, chartInstance) { 
       return { 
        borderColor: borderColor, 
        backgroundColor: backgroundColor 
       }; 
      } 

バックグラウンドカラーでは、ラベルの色を割り当てます。 borderColorを残すことができます。

は[サンプル・コード]

labelColor : function(tooltipItem, chartInstance){ 
        return { 
         backgroundColor : data.datasets[tooltipItem.datasetIndex].backgroundColor[0] 
        }; 
       } 
+0

以降で利用可能な機能です

labelTextColor代わりのlabelColorにしようとする場合がありますなぜかこれがうまくいかない理由は何ですか?私は 'tooltips {...}'でbackgroundColorを設定することができますが、特定の色をハードコーディングしてもコールバックの関数を使って何もしません。 – Windmill

0

'tooltipItem' 最終 's' を誤った綴り、存在しません。だから、あなたのコードは、あなたがlabelColorコールバック関数にdataと呼ばれるものを定義していない

labelColor : function(tooltipItem, chartInstance){ 
    return { 
     backgroundColor : data.datasets[tooltipItems.datasetIndex].backgroundColor[0] 
    }; 
} 
0

でなければなりません。 charts.jsのこのコールバックの別の混乱は、labelColorコールバック関数に渡される2番目のパラメータがチャートインスタンスであり、他のchartjsコールバックのようなデータセットではないことです。

とにかく、これはうまくいくはずです。

labelColor: function(tooltipItem, chart) { 
     var dataset = chart.config.data.datasets[tooltipItem.datasetIndex]; 
     return { 
      backgroundColor : dataset.backgroundColor 
     } 
    } 
2

あなたはこれがこの質問をしばらく頼まれたChartjs 2.7 https://github.com/chartjs/Chart.js/releases/tag/v2.7.0 (フィーチャー#4199)

+0

ツールチップのlabelTextColorプロパティはありません..私は適切なオプションがbodyFontColorになると思います。 – funkysoul

+0

Chartjs 2.7より後になりました https://github.com/chartjs/Chart.js/releases/tag/v2.7.0 (Feature#4199) –

関連する問題