我正在尝试创建一个数据和标签都是随机的水平条形图。我还想为每个条形图添加一个图例,类似于圆环图。目标是通过选择其相应的图例文本来删除特定项目。我正在考虑创建多个数据集的选项,但我不确定这是否是最佳方法。我使用的是Chart.js/2.7.2/Chart.min.js
我希望我可以为每个酒吧创建图例,请提出一些没有多个数据集的好主意
下面的代码我试图创建基于标签和值的新数据集:
const newDatasets = labels.map((label, index) => ({
label: label,
data: values[index],
}));
字符串
下面是我的实际代码:
const labels = category;
const values = count;
const data = {
labels: labels,
datasets: [{
data: values,
backgroundColor: getBackgroundColor(labels, reportColor[0]),
borderWidth: 2,
borderRadius: 19,
borderSkipped: false,
barPercentage: 1,
categoryPercentage: 0.1
}]
};
const config = {
type: 'horizontalBar',
data,
options: {
plugins: {
datalabels: {
color: 'white',
font: {
weight: 'bold'
},
},
},
responsive: true,
maintainAspectRatio: false,
indexAxis: 'y',
legend: { display: false },
tooltips: {
cornerRadius: 10
},
scales: {
xAxes: [{
barThickness: 6,
gridLines: {
display: false,
drawBorder: false
},
scaleLabel: {
display: true,
labelString: yAxisLabel,
fontSize: 20
},
ticks: {
/*beginAtZero: true,*/
userCallback: function(label, index, labels) {
if (Math.trunc(label) === label) {
return label;
}
}
},
}],
yAxes: [{
barPercentage: 1.0,
barThickness: 20,
gridLines: {
display: false,
drawBorder: false
},
scaleLabel: {
display: true,
labelString: xAxisLabel,
fontSize: 20
},
}]
},
},
};
horizontalBarChart = new Chart(
document.getElementById("horizontalBarChart"),
config
);
1条答案
按热度按时间jtoj6r0c1#
据我所知,您希望为每个小节生成
Horizontal bar chart with random value
。这里我已经做了你想要的东西与价值的每一个酒吧内的酒吧。
由于您使用的
Chart.js/2.7.2/Chart.min.js
有时不起作用,因此建议您使用https://cdn.jsdelivr.net/npm/chart.js
,对于datatabels plugin
,请使用https://cdn.jsdelivr.net/npm/ [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
字符串
请参考下面的JSFiddle链接以获取演示。JSFiddle Link
希望这对你有帮助。
谢谢.