iak*_*ina 3 javascript jquery bar-chart chart.js
我有一个包含这些数据和选项的条形图:
var data = {
labels: periodnames,
datasets: [
{
yAxisID: "bar-stacked",
data: rcash,
backgroundColor: "#FFCE56",
label:""
},
{
yAxisID:"bar-stacked",
data: pcash,
backgroundColor: "#FFCE56",
label: "cash"
}
]
};
var options = {
animation: {
animateScale: true
},
scales: {
xAxes: [{
stacked: true,
}],
yAxes: [
{
display:false,
id: "line-axis",
},
{
id: "bar-stacked",
stacked: true,
}
]
}
}
finactivityGraphChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});
Run Code Online (Sandbox Code Playgroud)
我的问题是我不想显示第一个数据集的标签。如果我不定义它,它会显示旁边带有值“undefine”的黄色框。我想我必须修改 Chart.js 文件。有什么建议?
这可以实现,使用filterlegend-功能的标签。
参见图例标签配置
简而言之,在您的图表选项中添加以下内容...
legend: {
labels: {
filter: function(label) {
if (label.text === 'cash') return true;
}
}
},
Run Code Online (Sandbox Code Playgroud)
???
legend: {
labels: {
filter: function(label) {
if (label.text === 'cash') return true;
}
}
},
Run Code Online (Sandbox Code Playgroud)
var ctx = document.querySelector('#c').getContext('2d');
var data = {
labels: ['Jan', 'Feb', 'Mar'],
datasets: [{
yAxisID: "bar-stacked",
data: [1, 2, 3],
backgroundColor: "#FFCE56",
label: "gold"
}, {
yAxisID: "bar-stacked",
data: [-1, -2, -3],
backgroundColor: "#FFCE56",
label: "cash"
}]
};
var options = {
legend: {
labels: {
filter: function(label) {
if (label.text === 'cash') return true; //only show when the label is cash
}
}
},
animation: {
animateScale: true
},
scales: {
xAxes: [{
stacked: true,
}],
yAxes: [{
display: false,
id: "line-axis",
}, {
id: "bar-stacked",
stacked: true,
}]
}
}
finactivityGraphChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});Run Code Online (Sandbox Code Playgroud)