在 html.erb 文件中设置 Chart.js 的刻度

问题描述

我在 Ruby on Rails 中将 chartkick 与 chart.js 结合使用。我看到了文档和一些问题,但找不到任何可以解决我的问题的内容

我在 html.erb 文件中设置我的图表,如下所示:

<%=
    line_chart $hash_chart,options: {
            max: $value.max+5,min: $value.min-5,allowDecimals: false,colors: color_line,xtitle: "Title of x axis",ytitle: "Title of y axis",discrete: true,points: false,width: "500px",height: "500px",scales: {
                yAxes: [{
                    distribution: 'linear'
                }],xAxes: [{
                    distribution: 'linear',type: 'category',(part of a configuration attempt)
                    categories: $time,(part of a configuration attempt)
                    ticks: {
                        stepSize: 10
                    }
                }]
            }
        }
%>

直到高度参数的设置有效,但缩放设置无效。这个问题的答案正是我所做的(根据 Chart.js 的文档),但没有奏效:Force display of ticks on xAxes using chartkick gem and chart.js。我也尝试将此设置放在库括号内。

基本上,我想在 x 轴上设置刻度并只显示我的数据数组的一些标签。是否可以格式化(使用这种类型的文件)?

解决方法

您使用了错误的旧版chart.js v2语法,例如v3中的比例必须像这样配置

scales: {
  x:{
    ticks: {}
  },y: {
  // Y config
  }
}

编辑: 由于您使用的是 V2,因此您声明轴的语法是正确的,请确保您不要运行最新版本的 chartKick,因为它使用的是 v3。

distribution 不会执行任何操作,除非您的比例类型为 timestepSize 仅适用于线性和时间刻度,因此您需要将 type: 'category' 更改为 type: 'linear' 或者如果您使用时间数据为 type: 'time' 如果您使用时间数据stepsize 必须在 time 子部分中配置,因此您需要将 ticks 更改为 time