chart.js棒グラフのデータセットラベルに正しい値が表示されません。私は別のチャート構成を試していますが、何も動作していないようです。 ここは私のJS Fiddleです。達成したいのは、棒グラフに「HIGH:30」や「MED:25」のような値が表示されますが、今はツールチップに最初のラベル(HIGH:30、HIGH:25、HIGH:56)のみが表示されています。すべての3つのバー。これはおかしい。助けが必要です。Chart.jsデータセットラベルの問題
私がarroChartConfig1を使用すると、すべてのグラフでハイと表示され、HIGH:30(赤いバー)、HIGH:25(黄色のバー)、HIGH:56 (青色のバー)。
arroChartConfig2を使用すると、正しいタイトルとラベルが表示されますが、ラベルHIGH、MED、LOWの凡例が1つだけ表示されます。
legendではarroChartConfig3の別のラベルを使用していますが、ツールチップのタイトルとラベルの値はarroChartConfig1と同じです。
ありがとうございます。
var oMyBarChart;
var ctx = document.getElementById("canvas").getContext("2d");
function GetSelectedChartType(sSelectedOption){
return sSelectedOption.options[sSelectedOption.selectedIndex].value;
}
arroLevels = ["HIGH","MED","LOW"];
arroLevelsCount = [30,25,56];
arroLevelColors =
['rgba(230,0,0,1)','rgba(255,255,79,1)','rgba(150,198,250,1)'];
arroDataset=[];
sChartType = GetSelectedChartType(document.getElementById('chartSelector'));
arroLevels.map(function(sValue,iIndex){
let oData = [arroLevelsCount[iIndex]];
let sColorData = arroLevelColors[iIndex];
arroDataset.push({
label: sValue,
data: oData,
backgroundColor: sColorData,
pointStyle: 'triangle',
});
});
barChartData = {
labels: arroLevels,
datasets: arroDataset,
}
arroChartConfig1 = {
type: sChartType,
data: barChartData,
options: {
responsive: true,
legend: {
position: 'right',
generateLabels: function(data){
return data.text;
}
},
title: {
display: true,
text: 'My Bar Chart'
},
tooltips: {
callbacks:{
label: function(ttitem,data){
return ttitem.xLabel+": "+ttitem.yLabel
}
}
}
}
}
arroChartConfig2 = {
type: sChartType,
data: {
datasets: [{
label: arroLevels,
data: arroLevelsCount,
backgroundColor: arroLevelColors,
pointStyle: 'triangle',
}],
labels: arroLevels
},
options: {
responsive: true,
legend: {
position: 'right',
generateLabels: function(data){
return data.text;
}
},
title: {
display: true,
text: 'My Bar Chart'
},
tooltips: {
callbacks:{
label: function(ttitem,data){
return ttitem.xLabel+": "+ttitem.yLabel
}
}
}
}
}
arroChartConfig3 = {
type: sChartType,
data: {
datasets: [{
label: "HIGH",
data: ["30"],
backgroundColor: 'rgba(230,0,0,1)',
pointStyle: 'triangle',
},
{
label: "MED",
data: ["25"],
backgroundColor: 'rgba(255,255,79,1)',
pointStyle: 'triangle',
},
{
label: "LOW",
data: ["56"],
backgroundColor: 'rgba(150,198,250,1)',
pointStyle: 'triangle',
}],
labels: ["HIGH","MED","LOW"]
},
options: {
responsive: true,
legend: {
position: 'right',
generateLabels: function(data){
return data.text;
}
},
title: {
display: true,
text: 'My Bar Chart'
},
tooltips: {
callbacks:{
title: function(ttitem,data){
return '';
},
label: function(ttitem,data){
return ttitem.xLabel+": "+ttitem.yLabel;
}
}
}
}
}
//oMyBarChart = new Chart(ctx,arroChartConfig1);
//oMyBarChart = new Chart(ctx,arroChartConfig2);
oMyBarChart = new Chart(ctx,arroChartConfig3);
ありがとうございます。どちらも棒グラフに適しています。しかし、今私は折れ線グラフ上の同じ設定でいくつかの問題があります。タイプを行に変更するだけで、チャートはすべてのツールチップのツールチップカラーボックスに黒色を表示します。私は、ツールチップのlabelcolorをオーバーライドし、カラー配列を返すようにしましたが、運はありません。 – ManWarrior
@ManWarrior私の答えの編集を確認してください。 – Shiffty
ありがとうございました。私はborderColorとbackgroundColorのキーにttitem.indexを渡していませんでした。 – ManWarrior