【问题标题】:Chartjs splitting double digit numbersChartjs拆分两位数
【发布时间】:2021-07-29 10:46:48
【问题描述】:

我已经看到这个问题问了几次,但我找不到适合我的解决方案。

我将一个 Django 变量传递给 Chartjs 进行绘图,所有个位数字都是正确的,但它会将两位数转换为单个数字。比如 11 是 1,1...23 是 2,3。

我尝试了很多不同的方法,但无法弄清楚,感谢您提供的任何帮助。

    var home_runs = '{% for game in all_games.home_ten %}{{ game.runs }}{% endfor %}'
        var ctx = document.getElementById('runChart').getContext('2d');
        var runChart = new Chart(ctx, {
        type: 'line',
        data: {
            labels: labels,
            datasets: [
                {
                  label: home_team,
                  data: home_runs
                },
                {
                  label: away_team,
                  data: away_runs,
                    
                    ],
                    }
            ]
        },
        options: {
            responsive: true,
        },
    });
    

【问题讨论】:

    标签: javascript python django chart.js


    【解决方案1】:

    您可以将该值推送到数组中,而不是直接将它们传递给您的data。因此,您可以将其添加到您的 js 代码中,即:

      var home_runs = [];
      '{% for game in all_games.home_ten %}'
         home_runs.push(parseInt('{{ game.runs }}'))
      '{% endfor %}'
    

    演示代码

    /* var home_runs = [];
     {% for game in all_games.home_ten %}
    home_runs.push(parseInt('{{ game.runs }}'))
    {% endfor %}*/
    var home_runs = [11, 52, 85, 93]
    var away_runs = [12, 52, 82, 94]
    var ctx = document.getElementById('runChart').getContext('2d');
    var runChart = new Chart(ctx, {
      type: 'line',
      data: {
        labels: ["A", "B", "C", "D"],
        datasets: [{
            label: "Abc",
            data: home_runs
          },
          {
            label: "Xyz",
            data: away_runs
    
          }
        ],
      },
      options: {
        responsive: true,
      },
    });
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <div>
      <canvas id="runChart" height="140"></canvas>
    </div>

    【讨论】:

    • 哇……你又成功了!非常感谢你,希望有一天我能像你一样聪明:)
    • 对于需要此信息的其他人,我唯一要添加到您的答案中的是您忘记了 for 语句周围的引号。
    • var home_runs = []; '{% for game in all_games.home_ten %}' home_runs.push(parseInt('{{ game.runs }}')) '{% endfor %}'
    • 我没有用 django 测试过,但类似的代码可以用 jsp 工作,所以我认为不需要引号。我会在我的回答中添加这个:)
    猜你喜欢
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    相关资源
    最近更新 更多