javascript - 图表 : how to set custom scale in bar chart

标签 javascript chart.js

Chartjs 是一个非常出色的开源工具,但我对我尝试创建的条形图有一个快速的问题。鉴于此图表数据:

    var chartData = {
        labels : labels,
        datasets :[
            {
                fillColor : "rgba(220,220,220,0.5)",
                strokeColor : "rgba(220,220,220,0.8)",
                highlightFill: "rgba(220,220,220,0.75)",
                highlightStroke: "rgba(220,220,220,1)",
                scaleOverride: true,
                scaleSteps: 9,
                data : values
            }
        ]   
    }

我曾希望图表将以 10 的最高值绘制,无论是否有 10 的任何值。我认为 scaleOverride 和 scaleSteps 可以实现这一点。

是否有可能获得该输出?我浏览了文档,没有看到任何其他明显的设置选项。

更新

让它工作。我的原始帖子底部没有包含 javascript 函数。

<div class="barChartTest" id="rating_12229" onload="drawChart();">
<input type="hidden" class="rating-component" comp-name="test1" comp-value="6"/>
<input type="hidden" class="rating-component" comp-name="test2" comp-value="7"/>
<input type="hidden" class="rating-component" comp-name="test3" comp-value="6"/>
<input type="hidden" class="rating-component" comp-name="test4" comp-value="5"/>
<input type="hidden" class="rating-component" comp-name="test5" comp-value="1"/>
</div> 
<canvas id="rating_12229" width="50" height="20"></canvas>

这是我的 javascript:

function buildRatingChartData(ratingId){
    var comps = document.getElementById(ratingId).getElementsByClassName("rating-component");   
    var labels = [];
    var values = [];

    for(var i=0; i<comps.length; i++){

            labels.push(comps[i].getAttribute("comp-name"));
            values.push(comps[i].getAttribute("comp-value"));
    }

    var chartData = {
        labels : labels,
        datasets :[
            {
                scale: 10,
                fillColor : "rgba(220,220,220,0.5)",
                strokeColor : "rgba(220,220,220,0.8)",
                highlightFill: "rgba(220,220,220,0.75)",
                highlightStroke: "rgba(220,220,220,1)",
                scaleOverride:true,
                scaleSteps:9,
                scaleStartValue:0,
                scaleStepWidth:1,
                data : values
            }
        ]   
    }

    return chartData;

}

这是我添加这些选项并获得我想要的输出的地方:

function drawCharts(){
    var ratings = document.getElementsByClassName("brewRatingData");
    for(var i=0; i<ratings.length; i++){

        var ratingId = ratings[i].getAttribute("id");   
        var canvasId = ratingId.replace("brewRating", "coffeeBarChart");

      var brewChartData = buildRatingChartData(ratingId);
      var ctx = document.getElementById(canvasId).getContext("2d");
      window.myBar = new Chart(ctx).Bar(brewChartData, {
        responsive : true,
            scaleOverride:true,
            scaleSteps:10,
            scaleStartValue:0,
            scaleStepWidth:1,
      });   

    }
}   

最佳答案

还包括 scaleStartValuescaleStepWidth,如 docs 中所述。

示例

此示例创建一个 Y 轴从 0 开始到 900 结束的条形图。为此,步长设置为 100,步长数设置为 9。

HTML

<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
    <body>
      <canvas id="income" width="600" height="400"></canvas>
    </body>
</html>

JS

var barData = {
    labels : ["January","February","March","April","May","June"],
    datasets : [
        {
            fillColor : "#48A497",
            strokeColor : "#48A4D1",
            data : [456,479,324,569,702,600]
        },
        {
            fillColor : "rgba(73,188,170,0.4)",
            strokeColor : "rgba(72,174,209,0.4)",
            data : [364,504,605,400,345,320]
        }

    ]
};

var income = document.getElementById("income").getContext("2d");

new Chart(income).Bar(barData, {
  animation:false,
  scaleOverride:true,
  scaleSteps:9,
  scaleStartValue:0,
  scaleStepWidth:100
});

关于javascript - 图表 : how to set custom scale in bar chart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632967/

相关文章:

javascript - 无法在 package.json 中的脚本对象上运行 "yarn run"

javascript - 有一个接收帖子的 go web 服务,但不清楚如何将响应发送回 jquery

javascript - AMP-HTML 的自定义

javascript - 绕过 javascript 错误以实现优雅降级

node.js - EJS 标签与 ChartJS?

javascript - 删除 Chart.js 中的左右填充

javascript - rails 4 : Passing a variable from controller to javascript

reactjs - react-chartjs-2 时间刻度日期不格式化

javascript - Chart js垂直线z-index

javascript - Chart.js数据背景色覆盖点背景色