【问题标题】:Chartjs change horizontal axis valueChartjs改变水平轴值
【发布时间】:2018-09-15 01:46:06
【问题描述】:

在 Chartjs 中设置哪些选项来更改水平轴值,从下面的代码中将基值设置为 100,而不是 0。

Chart to look like this, but y-axis base should be a 100 and not 0 as shown in the graph here.

因此,如果在条形图上绘制 70 的值,那么它的 y 轴应该从 100 到 70 开始。而 120 的值应该在它的 y 轴上从 100 到 120 开始。

Mock up, Excel version of how it should look like.

我在这里尝试了一些答案,但无法在 Chartjs 中实现。

注意:我正在处理来自 chartjs 网站的示例代码。但是,仍然无法根据需要得到具体的缩放比例。

Chartjs 2.6.0

var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
    var color = Chart.helpers.color;
    var barChartData = {
        labels: ["January", "February", "March", "April", "May", "June", "July"],
        datasets: [{
            label: 'Dataset 1',
            backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
            borderColor: window.chartColors.red,
            borderWidth: 1,
            data: [140,10,60,69,56,110]

        }, {
            label: 'Dataset 2',
            backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
            borderColor: window.chartColors.blue,
            borderWidth: 1,
            data: [50,120,70,98,130,34]
        }]

    };

    window.onload = function() {
        var ctx = document.getElementById("canvas").getContext("2d");
        window.myBar = new Chart(ctx, {
            type: 'bar',
            data: barChartData,
            options: {
                responsive: true,
                legend: {
                    position: 'top',
                },
                title: {
                    display: true,
                    text: 'Chart.js Bar Chart'
                }
            }
        });

    };

已编辑删除了随机数,并编辑了用于测试目的的常量。我目前正在研究 Chartjs 的插件。此选项在分布式包中可能不可用。

【问题讨论】:

    标签: javascript chart.js


    【解决方案1】:

    只需添加

    ticks: {           
        min:100
    }
    

    在 y 轴刻度下的选项中,您的选项应如下所示。

    options: {
        scales: {
            yAxes:[{
                ticks: {
                    min:10
                }
            }],
        },
        responsive: true,
        legend: {
            position: 'top',
        },
        title: {
            display: true,
            text: 'Chart.js Bar Chart'
        }
    }
    

    P.s:检查缩进,因为我没有使用编辑器。

    编辑可能是您在这种情况下已堆叠删除了堆叠类型。看到这个fiddle

    【讨论】:

    • 感谢@adeel 的回复,尝试一下。但是,看起来它只是在 100 处截断,而不是显示低于 100 的值。如果小于 100,我希望条形从 100 下降,如果超过 100,则向上堆叠到 100 以上。
    • @GSari 你能做个小提琴吗?这对社区和我来说真的很有帮助。欢迎 :)
    • @GSari 我做了一个小提琴。在编辑中你可以看到那个小提琴。
    • 根据您的以下建议进行了一些修改..谢谢
    • @GSari 我不知道您是否使用堆叠类型,所以这就是我给您一个一般性答案的原因。因为在您的问题中您没有提到堆叠类型。
    【解决方案2】:

    基于@adeel 建议的解决方法答案:

    因此,从下面的小提琴中,我在 y 轴和 x 轴上都使用了堆叠,以获得所需的效果。以第一个数据集(只是一个偏移数据集)为基础,叠加第二个数据集(实际),得到想要的效果。

    fiddle

    var ctx = document.getElementById("myChart").getContext("2d");
    var data = {
      labels: ["January", "February", "March", "April", "May", "June"],
      datasets: [{
        label: "Offset",
        backgroundColor: "transparent",
        data: [50,100,70,60,100,100]
      },{
        label: 'Actual Dataset',
        backgroundColor: 'Blue',
        borderWidth: 1,
        data: [50,20,30,40,30,70]
      }]
    };
    
    var myBarChart = new Chart(ctx, {
      type: 'bar',
      data: data,
      options: {
        scales: {
          xAxes: [{
            stacked: true
          }],
          yAxes: [{
            stacked: true,
          }]
        },
      }
    });
    

    【讨论】:

    • 如果它也适用于动态数据集,那将会很有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多