Saya ingin bertanya apakah mungkin menggunakan Chart.js menampilkan nilai data? Saya ingin mencetak grafik.
Terima kasih atas sarannya.
javascript
chart.js
FuSsA
sumber
sumber
Jawaban:
Pengeditan terlambat: ada plugin resmi untuk Chart.js
2.7.0+
untuk melakukan ini: https://github.com/chartjs/chartjs-plugin-datalabelsJawaban asli:
Anda dapat melakukan loop melalui poin / bar onAnimationComplete dan menampilkan nilainya
Pratinjau
HTML
Naskah
Biola - http://jsfiddle.net/uh9vw0ao/
sumber
onComplete
callback di sini tetapi juga aktif ketika gerakan mouse berada di bilah grafik yang menyebabkan nomor berkedip karena digambar ulang. Apakah itu sama jikaonAnimationComplete
? Saya tidak dapat menggunakan panggilan balik ini dengan kode bagan saya yang ada (lihatvar chartBar
di pastebin.com/tT7yTkGh bawah )Ini adalah versi terbaru untuk Chart.js 2.3
23 Sep 2016: Mengedit kode saya agar berfungsi dengan v2.3 untuk kedua jenis garis / batang.
Penting: Meskipun Anda tidak memerlukan animasi, jangan ubah opsi durasi menjadi 0, jika tidak, Anda akan mendapatkan error chartInstance.controller tidak ditentukan .
sumber
Opsi animasi ini berfungsi untuk 2.1.3 pada diagram batang.
Jawaban @Ross sedikit diubah
sumber
hover: {animationDuration: 0}
untuk menghentikan animasi label saat melayang.filter(dataset => !dataset._meta[0].hidden)
Saya pikir opsi terbaik untuk melakukan ini di chartJS v2.x adalah dengan menggunakan plugin, jadi Anda tidak memiliki blok kode yang besar dalam opsi. Selain itu, ini mencegah data menghilang saat mengarahkan kursor ke bilah.
Ie cukup menggunakan kode ini, yang mendaftarkan plugin yang menambahkan teks setelah grafik digambar.
sumber
Chart.defaults.global.tooltips.enabled = false;
. Masalah dengan solusi itu adalah bahwaafterDraw
fungsi tersebut dipanggil ratusan kali, mungkin menghasilkan overhead CPU. Tetap saja, itu satu-satunya jawaban untuk saat ini tanpa berkedip. Jika Anda membutuhkan rendering yang lebih baik untukhorizontalBar
grafik, gunakanctx.textAlign = 'left'; ctx.textBaseline = 'middle';
danctx.fillText(dataset.data[i], model.x+5, model.y);
.Berdasarkan jawaban jawaban @ Ross untuk Chart.js 2.0 dan yang lebih baru, saya harus menyertakan sedikit penyesuaian untuk mencegah kasus ketika ketinggian batang terlalu tinggi untuk memilih batas skala.
The
animation
atribut pilihan bar chart ini:sumber
ctx.save()
di bagian akhir tetapi tidak membantuonComplete
kembali panggilan dijalankan ketika saya melayang pada bar yang menyebabkan redraw & teks muncul untuk blink.Would ini sama denganonAnimationComplete
juga? saya tidak dapat menggunakanonAnimationComplete
kembali panggilan dengan kode yang ada (lihatvar chartBar
di bagian bawah pastebin. com / tT7yTkGhJika Anda menggunakan plugin chartjs-plugin-datalabels maka objek opsi kode berikut akan membantu
Pastikan Anda mengimpor
import 'chartjs-plugin-datalabels';
file skrip ketikan Anda atau menambahkan referensi ke<script src="chartjs-plugin-datalabels.js"></script>
dalam file javascript Anda.sumber
Mengikuti jawaban yang bagus ini , saya akan menggunakan opsi ini untuk diagram batang:
Ini masih menggunakan sistem tooltip dan kelebihannya (pemosisian otomatis, templating, ...) tetapi menyembunyikan dekorasi (warna latar belakang, tanda sisipan, ...)
sumber
this.datasets[0].points
bukan.bars
. Saya lebih suka solusi ini karena menggunakan sistem tooltip.onComplete
callback tetapi dipicu bahkan ketika diarahkan ke atas bilah grafik yang menyebabkan teks menggambar ulang & memberikan efek kedip yang tidak diinginkan. Saya juga mencobaafterDraw
& semuanya sama. tidak terjadi di biola yang disediakan oleh potatopeelings. Ada ide plz?Dari sampel chart.js (file Chart.js-2.4.0 / sampel / data_labelling.html):
`` `// Tentukan plugin untuk memberikan label data
``
sumber
Saya akan merekomendasikan menggunakan plugin ini: https://github.com/chartjs/chartjs-plugin-datalabels
Label dapat ditambahkan ke grafik Anda hanya dengan mengimpor plugin ke file js misalnya:
Dan dapat disetel dengan baik menggunakan dokumen ini: https://chartjs-plugin-datalabels.netlify.com/options.html
sumber
Sedikit edit jawaban @ ajhuddy. Hanya untuk diagram batang . Versi saya menambahkan:
Kelemahan: Saat mengarahkan kursor ke bilah yang memiliki nilai di dalamnya, nilainya mungkin terlihat sedikit bergerigi. Saya belum menemukan solusi untuk menonaktifkan efek hover. Mungkin juga perlu diubah tergantung pada pengaturan Anda sendiri.
Konfigurasi:
Pembantu:
sumber
calculateTickRotation
, itu di dalam fungsi Scale. Saya akan menganalisisnya.Dari pengalaman saya, setelah Anda menyertakan plugin chartjs-plugin-datalabels (pastikan untuk menempatkan
<script>
tag setelah tag chart.js di halaman Anda), grafik Anda mulai menampilkan nilai.Jika Anda kemudian memilih, Anda dapat menyesuaikannya agar sesuai dengan kebutuhan Anda. Kustomisasi didokumentasikan dengan jelas di sini tetapi pada dasarnya, formatnya seperti contoh hipotetis ini:
sumber