Saya menggunakan bagan garis dari http://www.chartjs.org/
Seperti yang Anda lihat nilai maks (130) dan nilai min (60) untuk sumbu Y dipilih secara otomatis, saya ingin nilai maks = 500 dan nilai min = 0. Apakah ini mungkin?
Saya menggunakan bagan garis dari http://www.chartjs.org/
Seperti yang Anda lihat nilai maks (130) dan nilai min (60) untuk sumbu Y dipilih secara otomatis, saya ingin nilai maks = 500 dan nilai min = 0. Apakah ini mungkin?
Jawaban:
Anda harus mengesampingkan skala, coba ini:
window.onload = function(){
var ctx = document.getElementById("canvas").getContext("2d");
window.myLine = new Chart(ctx).Line(lineChartData, {
scaleOverride : true,
scaleSteps : 10,
scaleStepWidth : 50,
scaleStartValue : 0
});
}
Untuk chart.js V2 (beta), gunakan:
var options = {
scales: {
yAxes: [{
display: true,
ticks: {
suggestedMin: 0, // minimum will be 0, unless there is a lower value.
// OR //
beginAtZero: true // minimum value will be 0.
}
}]
}
};
Lihat dokumentasi chart.js pada konfigurasi sumbu linear untuk detail lebih lanjut.
min
, max
dan stepsize
atribut dari ticks
namespace
suggestedMax
untuk nilai tertinggi minimum
var config = {
type: 'line',
data: {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
label: "My First dataset",
data: [10, 80, 56, 60, 6, 45, 15],
fill: false,
backgroundColor: "#eebcde ",
borderColor: "#eebcde",
borderCapStyle: 'butt',
borderDash: [5, 5],
}]
},
options: {
responsive: true,
legend: {
position: 'bottom',
},
hover: {
mode: 'label'
},
scales: {
xAxes: [{
display: true,
scaleLabel: {
display: true,
labelString: 'Month'
}
}],
yAxes: [{
display: true,
ticks: {
beginAtZero: true,
steps: 10,
stepValue: 5,
max: 100
}
}]
},
title: {
display: true,
text: 'Chart.js Line Chart - Legend'
}
}
};
var ctx = document.getElementById("canvas").getContext("2d");
new Chart(ctx, config);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.bundle.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<canvas id="canvas"></canvas>
</body>
BaganJS v2.4.0
Seperti yang ditunjukkan dalam contoh di https://github.com/jtblin/angular-chart.js pada tanggal 7 Februari 2017 (karena ini tampaknya sering mengalami perubahan):
var options = {
yAxes: [{
ticks: {
min: 0,
max: 100,
stepSize: 20
}
}]
}
Ini akan menghasilkan nilai sumbu 5 y seperti:
100
80
60
40
20
0
xAxes
dan yAxes
seharusnya berada scales
di bawah opsi. Yang plus ini lebih baru dari jawaban Ofer Sergev yang tampaknya benar juga mengejutkan.
Menulis ini pada 2016 sedangkan Chart js 2.3.0 adalah yang terbaru. Inilah cara seseorang mengubahnya
var options = {
scales: {
yAxes: [{
display: true,
stacked: true,
ticks: {
min: 0, // minimum value
max: 10 // maximum value
}
}]
}
};
window.onload = function(){
var ctx = document.getElementById("canvas").getContext("2d");
window.myLine = new Chart(ctx ,{
type: 'line',
data: yourData,
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true,
min: 0,
max: 500
}
}]
}
}
});
Saya mengkonfigurasi dengan 'opsi' di v2.
Anda harus membaca dokumentasi: http://www.chartjs.org/docs/#scales-linear-scale
Saya menulis js untuk menampilkan nilai dari 0 hingga 100 dalam sumbu y dengan selisih 20.
Ini adalah script.js saya
//x-axis
var vehicles = ["Trucks", "Cars", "Bikes", "Jeeps"];
//The percentage of vehicles of each type
var percentage = [41, 76, 29, 50];
var ctx = document.getElementById("barChart");
var lineChart = new Chart(ctx, {
type: 'bar',
data: {
labels: vehicles,
datasets: [{
data: percentage,
label: "Percentage of vehicles",
backgroundColor: "#3e95cd",
fill: false
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true,
min: 0,
max: 100,
stepSize: 20,
}
}]
}
}
});
Ini adalah grafik yang ditampilkan di web.
> Solusi Terbaik
"options":{
scales: {
yAxes: [{
display: true,
ticks: {
suggestedMin: 0, //min
suggestedMax: 100 //max
}
}]
}
}
yAxes: [{
display: true,
ticks: {
beginAtZero: true,
steps:10,
stepValue:5,
max:100
}
}]
Ini untuk Charts.js 2.0:
Alasan beberapa ini tidak berfungsi adalah karena Anda harus mendeklarasikan opsi Anda saat membuat bagan Anda seperti ini:
$(function () {
var ctxLine = document.getElementById("myLineChart");
var myLineChart = new Chart(ctxLine, {
type: 'line',
data: dataLine,
options: {
scales: {
yAxes: [{
ticks: {
min: 0,
beginAtZero: true
}
}]
}
}
});
})
Dokumentasi untuk ini ada di sini: http://www.chartjs.org/docs/#scales
Dengan 1.1.1, saya menggunakan yang berikut ini untuk memperbaiki skala antara 0,0 dan 1.0:
var options = {
scaleOverride: true,
scaleStartValue: 0,
scaleSteps: 10,
scaleStepWidth: 0.1
}
Dalam kasus saya, saya menggunakan callback dalam kutu yaxis, nilai saya dalam persen dan ketika mencapai 100% tidak menunjukkan titik, saya menggunakan ini:
yAxes: [{
ticks: {
beginAtZero: true,
steps: 10,
stepValue: 5,
max: 100.1,
callback: function(value, index, values) {
if (value !== 100.1) {
return values[index]
}
}
}
}],
Dan itu bekerja dengan baik.
Karena tidak ada saran di atas yang membantu saya dengan charts.js 2.1.4, saya menyelesaikannya dengan menambahkan nilai 0 ke array kumpulan data saya (tetapi tidak ada label tambahan):
statsData.push(0);
[...]
var myChart = new Chart(ctx, {
type: 'horizontalBar',
data: {
datasets: [{
data: statsData,
[...]
Saya menggunakan versi lama templat Flat Lab di beberapa proyek saya yang menggunakan v1.x dari chart.js yang saya tidak yakin. Saya tidak dapat memperbarui ke v2.x karena saya sudah memiliki beberapa proyek yang bekerja dengannya . Yang disebutkan di atas(bardata,options)
tidak bekerja untuk saya.
Jadi di sini adalah retas untuk versi 1.x
calculatedScale = calculateScale(scaleHeight,valueBounds.maxSteps,valueBounds.minSteps,valueBounds.maxValue,valueBounds.minValue,labelTemplateString);
Ganti dengan:
calculatedScale = calculateScale(scaleHeight,valueBounds.maxSteps,1,valueBounds.maxValue,0,labelTemplateString);
Bagan memiliki nilai "min" dan "max". Dokumentasi pada tautan ini
https://www.chartjs.org/docs/latest/axes/cartesian/linear.html
scales
Objek dalam versi 2.x sangat berbeda. Lihat @OferSegev jawaban di bawah ini dan dokumentasi 2.x di sini .