【发布时间】:2021-11-12 22:48:48
【问题描述】:
我有一个不同颜色的水平图表来对数据进行分组。在下面的代码中,图表布局按预期显示,但图例仅显示单一颜色(黄色)。如何在保持图表布局的同时强制图表显示其他两个的图例?图例应该是黄色的“第 1 组”、橙色的“第 2 组”和粉红色的“第 3 组”。
var ctx = document.getElementById("myChart").getContext("2d");
var dataArr = [21, 34, 21, 90, 88, 88, 22, 11, 10, 62, 55, 96, 62];
var dataLabelsArr = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M"];
var dataColorsArr = ["yellow", "yellow", "yellow", "yellow", "orange", "orange", "orange", "orange", "orange", "hotpink", "hotpink", "hotpink", "hotpink"];
var data = {
datasets: [{
label: dataLabelsArr,
backgroundColor: dataColorsArr,
data: dataArr
}]
};
var myBarChart = new Chart(ctx, {
type: 'bar',
data: {
labels: dataLabelsArr,
datasets: [{
data: dataArr,
backgroundColor: dataColorsArr,
label: "Group 1"
}]
},
options: {
indexAxis: 'y',
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.min.js"></script>
<canvas id="myChart" width="350" height="175"></canvas>
【问题讨论】:
-
你想显示什么?您的数据未分组。如果对数据进行分组,这样的图表看起来会有所不同。也许您需要不同的图表?
-
我正在尝试显示一个像上面那样的水平条形图,数据中的三个“组”具有不同的颜色(
A-DasGroup 1,E-IasGroup 2,和J-M为Group 3),以便它们具有不同的颜色并显示3个“组”图例/颜色框。当我尝试添加其他数据集时,我没有对数据进行分组,但在每个黄色条旁边添加了一个橙色条。我不知道如何创建上面的图表但添加了颜色框/图例的任何解决方案。
标签: javascript charts chart.js legend