chartjs的时间尺度格式问题,主要是unitStepSize

时间:2016-11-27 09:24:42

标签: javascript chart.js

我喜欢chartjs,但是当我谈到我的时间尺度时,我一直在努力获得我所追求的确切格式。我所追求的是以下内容:

  • 标签不应该是对角线(理想情况下 - 不是大粉丝)
  • 理想情况下,我可以指定刻度线的最小间隙,以避免上述情况,例如7天

我一直在使用以下xAxes设置:

xAxes: [{
  type: 'time',
  unit: 'day',
  unitStepSize: 10,
  minUnit: 'day',
  time: {
    displayFormats: {
      day: 'D-MMM',
      week: 'D-MMM',
      month: 'D-MMM',
      quarter: 'D-MMM',
    }
  }
}]

我的日期以“YYYY-MM-DD”格式消费。

现在它似乎忽略了unitStepSize

可在此处找到完整示例: https://jsfiddle.net/koendirckx/fqhv8cjs/5/

1 个答案:

答案 0 :(得分:4)

在自己努力解决这个问题的时间超过了我应该拥有的时间之后,我终于注意到了http://www.chartjs.org/docs/#scales-time-units中Chartjs文档中的精细打印。需要在time子选项中定义unitStepSize参数。

我在做:

import urllib.request

external_ip = urllib.request.urlopen('https://ident.me').read().decode('utf8')

print(external_ip)

当我应该做的时候:

 scales: {
                xAxes: [{
                    type: "time",
                    time: {
                        unit: 'day',
                        displayFormats: {
                            day: 'MMM DD',
                        },
                    },
                    ticks: {
                        fontColor: "black",
                        fontSize: 12,
                        fontStyle: "normal",
                        fontFamily: "Segoe UI",
                    },
                    unitStepSize: 7,
                }],
                yAxes: yAxes
            },

在更广泛的上下文中:(请注意,eleChart1是图表的画布DOM元素,yAxis,数据集和ChartName是在示例之外构建的对象/变量。)

 scales: {
                xAxes: [{
                    type: "time",
                    time: {
                        unit: 'day',
                        displayFormats: {
                            day: 'MMM DD',
                        },
                        unitStepSize: 7,
                    },
                    ticks: {
                        fontColor: "black",
                        fontSize: 12,
                        fontStyle: "normal",
                        fontFamily: "Segoe UI",
                    },
                }],
                yAxes: yAxes
            },

底线:我将unitStepSize选项放入时间对象后,按预期工作。