Javascript 如何在Chartjs中仅显示xAxe上的两个数字,并且在图表上有两个以上的数字?(折线图)

Javascript 如何在Chartjs中仅显示xAxe上的两个数字,并且在图表上有两个以上的数字?(折线图),javascript,charts,chart.js,Javascript,Charts,Chart.js,我只想在2018年和2019年各一次,当2019年的数据开始时,实际上是这样的: 当我试着只放置两个标签时,它只显示了整个图表中的两个数字 我想实现的是,虽然我在图表上有很多数据,但我的x轴上两年的标签只显示了两次,所以不是所有的日子都像现在这样。我在整个web开发方面没有那么多经验,所以非常感谢您的帮助。提前谢谢 var config = { type: 'line', data: { labels: ['26.10.2018', '02.11.2018', '09.11.20

我只想在2018年和2019年各一次,当2019年的数据开始时,实际上是这样的:

当我试着只放置两个标签时,它只显示了整个图表中的两个数字

我想实现的是,虽然我在图表上有很多数据,但我的x轴上两年的标签只显示了两次,所以不是所有的日子都像现在这样。我在整个web开发方面没有那么多经验,所以非常感谢您的帮助。提前谢谢

var config = {
  type: 'line',
  data: {
    labels: ['26.10.2018', '02.11.2018', '09.11.2018', '16.11.2018', '23.11.2018', '30.11.2018', '07.12.2018', '14.12.2018', '21.12.2018', '28.12.2018', '31.12.2018', '01.01.2018', '04.01.2019', '11.01.2019', '18.01.2019', '25.01.2019', '01.02.2019', '08.02.2019', '15.02.2019', '22.02.2019', '01.03.2019'],
    datasets: [{
      label: 'Modell',
      data: [{
          x: '26.10.2018',
          y: -4.43
        }, {
          x: '02.11.2018',
          y: -3.47
        }, {
          x: '09.11.2018',
          y: -3.34
        }, {
          x: '16.11.2018',
          y: -3.62
        }, {
          x: '23.11.2018',
          y: -4.20
        }, {
          x: '30.11.2018',
          y: -3.70
        }, {
          x: '07.12.2018',
          y: -4.04
        }, {
          x: '14.12.2018',
          y: -3.75
        }, {
          x: '21.12.2018',
          y: -4.46
        }, {
          x: '28.12.2018',
          y: -4.50

        }, {
          x: '31.12.2018',
          y: -4.50
        },
        {
          x: '01.01.2018',
          y: -4.50
        }, {
          x: '04.01.2018',
          y: -4.05

        }, {
          x: '11.01.2018',
          y: -3.76
        }, {
          x: '18.01.2018',
          y: -3.64
        }, {
          x: '25.01.2018',
          y: -3.38
        }, {
          x: '01.02.2019',
          y: -3.09
        }, {
          x: '08.02.2019',
          y: -3.24
        }, {
          x: '15.02.2019',
          y: -2.88
        }
      ],
      fill: false,
    }]
  },
  options: {
    responsive: true,
    title: {
      display: true,
      text: 'TAM Eurosectors Defensiv'
    },
    scales: {
      xAxes: [{
        display: true,
        scaleLabel: {
          display: true,
          labelString: '2018 - 2019'
        }
      }]
    }
  }
};

绘制时间序列时,应使用。要使用它,首先需要更正数据集:

日期必须以明确的格式提供,即:YYYY-MM-DD。 你的日期必须按时间顺序排列。您的问题在图片和代码中都显示了2018-01之后的2018-10,这显然是一个bug。 完成此操作后,您可以根据需要简单地将时间轴配置为仅显示年份:

options: {
  scales: {
    xAxes: [{
      type: "time",
      time: {
        unit: "year"
      }
    }
  }
}
下面是一个完全有效的示例,使用如上所述更正的数据集。请注意,您不需要提供标签,因为时间轴会自动计算刻度标签

变量配置={ 键入:“行”, 数据:{ 数据集:[{ 标签:'Modell', 数据:[{ x:‘2018-01-01’, y:-4.50 }, { x:‘2018-01-04’, y:-4.05 }, { x:‘2018-01-11’, y:-3.76 }, { x:‘2018-01-18’, y:-3.64 }, { x:‘2018-01-25’, y:-3.38 }, { x:‘2018-10-26’, y:-4.43 }, { x:‘2018-11-02’, y:-3.47 }, { x:‘2018-11-09’, y:-3.34 }, { x:‘2018-11-16’, y:-3.62 }, { x:‘2018-11-23’, y:-4.20 }, { x:‘2018-11-30’, y:-3.70 }, { x:‘2018-12-07’, y:-4.04 }, { x:‘2018-12-14’, y:-3.75 }, { x:‘2018-12-21’, y:-4.46 }, { x:‘2018-12-28’, y:-4.50 }, { x:‘2018-12-31’, y:-4.50 }, { x:‘2019-02-01’, y:-3.09 }, { x:‘2019-02-08’, y:-3.24 }, { x:‘2019-02-15’, y:-2.88 } ], 填充:假 }] }, 选项:{ 回答:是的, 标题:{ 显示:对, 文本:'TAM EUROSEVIV' }, 比例:{ xAxes:[{ 类型:时间, 时间:{ 单位:年 }, scaleLabel:{ 显示:对, 标签串:“2018-2019” } }] } } }; 新建Chartdocument.getElementByIdchart,配置; 关于时间,您应该使用更多选项

  scales: {
    xAxes: [{
      type: 'time',
      time: { 
        unit: 'year'
      }
    }]
  },
您必须导入以获得更多计算和显示数据的选项。我用了它,所以你可以用德语日期格式显示标签。我不知道你是否需要它,只是看到你来自德国,你使用德语日期格式输入

以下是格式化工具提示的代码:

  tooltips: {
    callbacks: {
      title: function(tooltipItem, data){
        return moment(tooltipItem[0].label).format('DD.MM.YYYY')
      }
    }
  }
注意:您的日期错误,例如“2018-01-01”而不是“2019-01-01”,并且在数据中添加标签时不需要额外的标签