Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menetapkan nilai paksi y dalam carta bar menegak menggunakan carta JS

<p>Dalam carta bar menegak ini, paksi-y mempunyai nilai positif dan negatif. </p> <p>Saya mahu menggunakan integer positif di atas dan di bawah nilai sifar. </p> <p>Saya menggunakan versi 4.2.1</p> <p>Apakah yang perlu saya lakukan? </p> <p>Contoh carta menegak</p> <pre class="brush:php;toolbar:false;">var BULAN = [ "Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember", ]; var color = Carta.helpers.color; var barChartData = { label: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai"], set data: [ { label: "Set Data 1", Warna latar belakang: 'rgba(255, 201, 14, 1)', Warna sempadan: 'rgba(255, 201, 14, 1)', lebar sempadan: 1, data: [ 10, 20, 30, 40, 50 ], }, { label: "Set Data 2", Warna latar belakang: 'rgba(255, 201, 14, 1)', Warna sempadan: 'rgba(255, 201, 14, 1)', lebar sempadan: 1, data: [ -100, -200, -300, -400, -500 ], }, ], }; var ctx = Carta Tekanan darah; Carta baharu(ctx, { jenis: "bar", data: barChartData, pilihan: { responsif: benar, lagenda: { kedudukan: "atas", }, tajuk: { paparan: benar, teks: "Carta Bar Chart.js", }, }, });</pre> <p>Ini adalah kod saya menggunakan carta JS. </p> <p>Rajah Kod Saya</p>
P粉729436537P粉729436537390 hari yang lalu539

membalas semua(1)saya akan balas

  • P粉316110779

    P粉3161107792023-08-30 00:43:35

    Jika anda hanya mahu menukar teks label paksi-y, anda boleh menukarnya sepenuhnya dengan menetapkan fungsi options.scales.y.ticks.callback, lihat Dokumentasi dan Rujukan API untuk butiran. Dalam kes anda, untuk menjadikan nilai negatif dibaca sebagai positif, anda boleh menggunakan:

    callback: function(val){
        return this.getLabelForValue(Math.abs(val));
    }

    atau

    callback: function(val){
        return this.getLabelForValue(val).replace(/^-/, '');
    }

    var ctx = document.getElementById('chart1');
    var MONTHS = [
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",
        "July",
        "August",
        "September",
        "October",
        "November",
        "December",
    ];
    
    var barChartData = {
        labels: ["January", "February", "March", "April", "May", "June", "July"],
        datasets: [
            {
                label: "Dataset 1",
                backgroundColor: 'rgba(255, 201, 14, 1)',
                borderColor: 'rgba(255, 201, 14, 1)',
                borderWidth: 1,
                data: [
                    10,
                    20,
                    30,
                    40,
                    50
                ],
            },
            {
                label: "Dataset 2",
                backgroundColor: 'rgba(255, 201, 14, 1)',
                borderColor: 'rgba(255, 201, 14, 1)',
                borderWidth: 1,
                data: [
                    -100,
                    -200,
                    -300,
                    -400,
                    -500
                ],
            },
        ],
    };
    
    new Chart(ctx, {
        type: "bar",
        data: barChartData,
        options: {
            responsive: true,
            legend: {
                position: "top",
            },
            title: {
                display: true,
                text: "Chart.js Bar Chart",
            },
            scales:{
                y: {
                    ticks: {
                        callback: function(val){
                            return this.getLabelForValue(Math.abs(val));
                            // or: //return this.getLabelForValue(val).replace(/^-/, '');
                        },
                    }
                }
            },
        },
    });
    <canvas id="chart1" style="height:500px"></canvas>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.1.2/chart.umd.js"
            integrity="sha512-t41WshQCxr9T3SWH3DBZoDnAT9gfVLtQS+NKO60fdAwScoB37rXtdxT/oKe986G0BFnP4mtGzXxuYpHrMoMJLA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

    balas
    0
  • Batalbalas