#javascript #chart.js
Вопрос:
Это использование charts.js. Этот код создает только линейный график, но заголовок, оси x и y не отображаются. Я хочу добавить заголовок и имена для этих 2-х осей на график. что не так и как это исправить? Я также хочу, чтобы ось y начиналась с 0 и выше.
async function chartDisplay() {
await getData1();
await getData2();
const ctx = document.getElementById('chart').getContext('2d');
const myChart = new Chart(ctx, {
type: 'line',
data: {
labels: xLabels,
datasets: [{
data: ratingDataI,
label: "data1",
borderColor: "#3E95CD",
fill: false
},
{
data: ratingDataA,
label: "data2",
borderColor: "#3E95CD",
fill: false
}
]
},
options: {
responsive: true,
title: {
display: true,
text: 'Chart.js Line Chart'
},
tooltips: {
mode: 'label',
},
hover: {
mode: 'nearest',
intersect: true
},
scales: {
x: [{
display: true,
scaleLabel: {
display: true,
labelString: 'Dates'
}
}],
y: [{
display: true,
scaleLabel: {
display: true,
labelString: 'Value'
}
}]
}
}
});
}
Ответ №1:
x и y должны быть не массивами, а объектами, также scaleLabel
title
теперь называется опора. Для всех изменений, пожалуйста, ознакомьтесь с руководством по миграции (https://www.chartjs.org/docs/master/getting-started/v3-migration.html)
Пример:
var options = {
type: 'line',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
borderColor: 'pink'
}]
},
options: {
scales: {
y: {
beginAtZero: true,
title: {
display: true,
text: 'yAxis'
}
},
x: {
title: {
display: true,
text: 'xAxis'
}
}
}
}
}
var ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
<body>
<canvas id="chartJSContainer" width="600" height="400"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.4.1/chart.js"></script>
</body>
Комментарии:
1. Как бы вы добавили диапазон к оси y
2. Как указано в документации, вы можете использовать это
beginAtZero
свойство: chartjs.org/docs/master/axes/cartesian/… , см. обновленный ответ