gpt4 book ai didi

javascript - 在 Chart.js 中制作直方图

转载 作者:数据小太阳 更新时间:2023-10-29 05:17:20 37 4
gpt4 key购买 nike

我们使用 Chart.js我们代码库中的库,我需要创建一个直方图,这不是他们的默认图表类型之一。因此,我试图覆盖条形图上的 x 轴刻度线,使它们出现在每个条形图的左右 Angular ,而不是直接在下方。

在下面的示例中,我通过在 labels 中添加一个额外的项目来获得我想要的 x 轴。数组并在 options 中显示第二个 x 轴.但是,由于现在有一个额外的标签,条形图占据了宽度的 4/5,为不存在的数据点留出了空间。

有什么方法可以指定忽略丢失的数据点吗?还是抵消酒吧?还是我找错了树?

documentation有点难以解析,所以我不确定是否遗漏了一些简单的东西。

var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: [0, 1, 2, 3, 4],
datasets: [{
label: 'Group A',
data: [12, 19, 3, 5],
backgroundColor: 'rgba(255, 99, 132, 1)',
}]
},
options: {
scales: {
xAxes: [{
display: false,
barPercentage: 1.30,
}, {
display: true,
}],
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
canvas { max-width: 200px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<canvas id="myChart" width="20" height="20"></canvas>

编辑:我意识到还有其他库可以实现类似的功能,我正在研究其他选项。但是,我已经发布了这个以防万一有人知道通过 Chart.js 的解决方案,这将是理想的。

这是我想要的最终结果的示例:

enter image description here

最佳答案

我相信您可以通过在 x 轴的 ticks 配置上使用 max 参数来获得您想要的结果。

通过使用具有不同最大值的 2 个不同的 x 轴,您可以以不同于它们绘制方式的方式标记条形。导致在条形之间标记标记,而无需绘制额外的“空”条。

var ctx = document.getElementById("myChart").getContext('2d');
var dataValues = [12, 19, 3, 5];
var dataLabels = [0, 1, 2, 3, 4];
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: dataLabels,
datasets: [{
label: 'Group A',
data: dataValues,
backgroundColor: 'rgba(255, 99, 132, 1)',
}]
},
options: {
scales: {
xAxes: [{
display: false,
barPercentage: 1.3,
ticks: {
max: 3,
}
}, {
display: true,
ticks: {
autoSkip: false,
max: 4,
}
}],
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
canvas { max-width: 200px; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<canvas id="myChart" width="20" height="20"></canvas>

关于javascript - 在 Chart.js 中制作直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51880101/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com