#vue.js #chart.js #resize #height #vue-chartjs
Вопрос:
Нужна помощь с диаграммой js
НА САМОМ ДЕЛЕ, Я ИСПОЛЬЗУЮ VUE-CHARTJS, НО ЭТО ВСЕГО ЛИШЬ ОБОЛОЧКА
на линейном графике слева число увеличивается на 5(0, 5, 10, 15, и т.д.) Я хочу, чтобы он увеличился на 10, а также уменьшил высоту диаграммы, чтобы соотношение сторон было примерно 16/9
также можно ли заставить левое число говорить 5k , 10k , 15k вместо просто 5, 10, 15
вот мой код для диаграммы
<script>
import { Line } from 'vue-chartjs'
export default {
extends: Line,
data: () => ({
chartdata: {
labels: ['January', 'February', 'March', 'April', 'May','Jun'],
datasets: [
{
data: [12, 20, 27, 22, 14, 10],
borderColor: "#135193",
pointBackgroundColor: "#135193",
pointBorderColor: "#135193",
backgroundColor: 'rgba(255, 255, 255, 0)'
},
{
data: [3, 12, 17, 20, 30, 40],
borderColor: "#FF8811",
pointBackgroundColor: "#FF8811",
pointBorderColor: "#FF8811",
backgroundColor: 'rgba(255, 255, 255, 0)'
}
]
},
options: {
responsive: true,
legend: {
display: false
}
}
}),
mounted () {
this.renderChart(this.chartdata, this.options)
}
}
</script>
Ответ №1:
Да, вы можете просто использовать CSS для установки размеров холста и установить maintainAspectRatio
значение false
в параметрах, для галочек вы можете использовать обратный вызов галочки:
const labels = ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"];
const options = {
type: 'line',
data: {
labels,
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
borderColor: 'red',
backgroundColor: 'pink'
}]
},
options: {
maintainAspectRatio: false,
scales: {
yAxes: [{
ticks: {
callback: (val) => (`${val}K`)
}
}]
}
}
}
const ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
canvas {
max-height: 180px;
max-width: 320px;
}
<body>
<canvas id="chartJSContainer" width="600" height="400"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.js"></script>
</body>
Ответ №2:
Хорошо, оказывается, это так же просто, как обернуть диаграмму контейнером и установить высоту этого контейнера по мере необходимости