Heim  >  Fragen und Antworten  >  Hauptteil

So legen Sie den Y-Achsenwert in einem vertikalen Balkendiagramm mithilfe von Chart JS fest

<p>In diesem vertikalen Balkendiagramm hat die Y-Achse positive und negative Werte. </p> <p>Ich möchte positive Ganzzahlen über und unter dem Nullwert verwenden. </p> <p>Ich verwende Version 4.2.1</p> <p>Was soll ich tun? </p> <p>Beispiel für ein vertikales Diagramm</p> <pre class="brush:php;toolbar:false;">var MONTHS = [ „Januar“, „Februar“, „März“, „April“, „Mai“, „Juni“, „Juli“, „August“, „September“, „Oktober“, „November“, „Dezember“, ]; var color = Chart.helpers.color; var barChartData = { Beschriftungen: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli"], Datensätze: [ { Beschriftung: "Datensatz 1", Hintergrundfarbe: 'rgba(255, 201, 14, 1)', borderColor: 'rgba(255, 201, 14, 1)', borderWidth: 1, Daten: [ 10, 20, 30, 40, 50 ], }, { Beschriftung: "Datensatz 2", Hintergrundfarbe: 'rgba(255, 201, 14, 1)', borderColor: 'rgba(255, 201, 14, 1)', borderWidth: 1, Daten: [ -100, -200, -300, -400, -500 ], }, ], }; var ctx = BloodPressureChart; neues Diagramm(ctx, { Typ: „bar“, Daten: barChartData, Optionen: { reaktionsfähig: wahr, Legende: { Position: „oben“, }, Titel: { Anzeige: wahr, Text: „Chart.js Balkendiagramm“, }, }, });</pre> <p>Dies ist mein Code mit Diagramm-JS. </p> <p>Mein Codediagramm</p>
P粉729436537P粉729436537390 Tage vor540

Antworte allen(1)Ich werde antworten

  • P粉316110779

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

    如果您只想更改 y 轴标签的文本,可以通过设置函数 options.scales.y.ticks.callback 来完全更改它们,请参阅文档API 参考了解详细信息。在您的情况下,要使负值读为正值,您可以使用:

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

    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>

    Antwort
    0
  • StornierenAntwort