javascript - Chart.js - 绘制具有相反条形的图表 - 如何将 y 轴两端设置为正数?

标签 javascript chart.js

我想绘制一个具有相反条形的图表,如下所示(请忽略黄色部分): enter image description here

这是我使用 Chart.js 的尝试:

enter image description here

您可以看到有两件事需要修复:

  1. 蓝色和红色条应该堆叠在一起
  2. y 轴两端应显示正数

我怎样才能实现这些目标?

最佳答案

您可以使用stackingcustom ticks功能来产生您想要的结果。

Sample JS Fiddle

var ctx = document.getElementById('wrapper').getContext('2d');
var chart = new Chart(ctx, {
    // The type of chart we want to create
    type: 'bar',

    // The data for our dataset
    data: {
        labels: ["January", "February", "March", "April", "May", "June", "July"],
        datasets: [{
            label: "My First dataset",
            backgroundColor: 'rgb(255, 99, 132)',
            borderColor: 'rgb(255, 99, 132)',
            data: [0, 10, 5, 2, 20, 30, 45],
            stack: 'a'
        }, {
            label: "My Second dataset",
            backgroundColor: 'rgb(2, 99, 132)',
            borderColor: 'rgb(2, 99, 132)',
            data: [-10, -110, -15, -12, -120, -130, -145],
            stack: 'b'
        }]
    },

    // Configuration options go here
    options: {
        scales: {
            xAxes: [{
                stacked: true
            }],
            yAxes: [{
                stacked: true,
                ticks: {
                    callback: function (value, index, values) {
                        return value < 0 ? -value : value;
                    }
                }
            }]
        }
    }
});

关于javascript - Chart.js - 绘制具有相反条形的图表 - 如何将 y 轴两端设置为正数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49532701/

相关文章:

javascript - 如何在子 HTML 窗口上提交表单,然后在父窗口上调用 Javascript 函数,然后关闭子窗口

jquery - 使用 Chart.js 将数据添加到折线图

javascript - 单击按钮时从存储在变量中的数组更新图表数据

html - 如何并排对齐多个饼图?

javascript - 日期范围选择器和图表 js

javascript - 如何将变量更改推送到事件 Canvas 绘制

javascript - Three.js Raycaster 与球体的碰撞检测

javascript - 带有 AJAX 内容的 Sweet Alert 2

javascript - 使用下拉列表过滤后如何保留多选框中的选定值

javascript - Chart.js 2.0 中的添加数据