#javascript #chart.js
#javascript #chart.js
Вопрос:
Я пытаюсь удалить пробел между столбцами моей гистограммы, но, хотя я вижу это решение во многих местах, оно не работает для меня. Это также не упоминается в Chart.js docs так что это странно. Может кто-нибудь сказать мне, как это указать?
var options = {
barValueSpacing : 1, // doesn't work; find another way
barDatasetSpacing : 1, // doesn't work; find another way
legend: {
display: false // Hides annoying dataset label
},
tooltips: {
callbacks: {
label: function(tooltipItem) {
return tooltipItem.yLabel;
}
}
}
};
var ctx = document.getElementById("canvasX").getContext("2d");
var myBarChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});
Ответ №1:
Вам нужно установить barPercentage
и categoryPercentage
в 1.0
масштабе по оси x. Добавьте это к вашему options
объекту:
var options = {
...
scales: {
xAxes: [{
categoryPercentage: 1.0,
barPercentage: 1.0
}]
}
};
Комментарии:
1. Требуется незначительное исправление:
scales
должен быть объект, а не массив.2. Несколько других отметили, что это теперь скрытые ответы, но, похоже, это не работает для горизонтальной гистограммы. В настоящее время я ищу обходной путь и опубликую, если что-нибудь найду.
3. @TopherFangiofor Для меня это действительно сработало для горизонтальной гистограммы (тип: «horizontalBar»,)!!!!!
4. на самом деле сработало то, что в его ответе Хилла были установлены эти значения, но для yAxes.
5. Убедитесь, что у вас не установлено значение толщины набора данных, иначе оно переопределит параметр barPercentage .
Ответ №2:
В версии 3.2.0 установлено barPercentage
значение и categoryPercentage
до 1.0 в каждом наборе данных:
var datasets = [
{
...
barPercentage: 1.0,
categoryPercentage: 1.0
}
]
См . https://www.chartjs.org/docs/3.2.0/charts/bar.html для получения более подробной информации
Ответ №3:
Оба barpercentage
и categorypercentage
являются собственностью dataset
option в chart.js . Вы можете увидеть их в списке здесь и их значение по умолчанию.
const labels = ["AA","BB", "CC", "DD", "EE", "FF"];
const data = {
labels: labels,
datasets: [{
categoryPercentage: 0.8, // notice here
barPercentage: 0.8, // notice here
label: 'Male',
data: [-189, -97, -2076, -691, -7887, -3687],
//...
}]
};
Однако, согласно документу конфигурации,
Параметры набора данных можно изменять на нескольких разных уровнях.
Точно так же, как в примере ниже. опция может использоваться на уровне глобальной конфигурации.
const config = {
type: 'bar',
data: data,
options: {
categoryPercentage: 1.0, // here
barPercentage: 0.98, // here
maintainAspectRatio: false,
indexAxis: 'y',
scales: {
y: {
beginAtZero: true,
stacked: true
},
}
},
};
Если вас интересует, как взаимодействуют два свойства, пожалуйста, ознакомьтесь с подробностями здесь.