tha*_*ksd 8 javascript chart.js
我们在代码库中使用Chart.js库,我需要创建一个直方图,这不是它们的默认图表类型之一。因此,我尝试覆盖条形图上的x轴刻度线,以使其出现在每个条形的左,右角,而不是直接在其下方。
在下面的示例中,通过在labels数组中添加一个额外的项并在中显示第二个x轴,我获得了所需的x轴options。但是,因为现在有了一个额外的标签,所以条形图占据了宽度的4/5处,为不存在的数据点留出了空间。
我可以指定某种方式来忽略丢失的数据点吗?或抵消酒吧?还是我吠错了树?
该文档很难解析,因此我不确定是否缺少一些简单的东西。
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
}
}]
}
}
});Run Code Online (Sandbox Code Playgroud)
canvas { max-width: 200px; }Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
编辑:我意识到还有其他库可以达到类似的目的,我正在寻找其他选择。但是,我已发布了此信息,以防万一有人通过Chart.js知道解决方案,这是理想的选择。
这是我要达到的最终结果的一个示例:
我相信您可以通过使用x轴配置上的max参数来获得所需的结果ticks。
通过使用具有不同最大值的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
}
}]
}
}
});Run Code Online (Sandbox Code Playgroud)
canvas { max-width: 200px; }Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5954 次 |
| 最近记录: |