【问题标题】:Wrong label value is displayed on point hover - Chart.JS点悬停时显示错误的标签值 - Chart.JS
【发布时间】:2019-03-30 04:30:01
【问题描述】:

当您将点悬停在折线图工具提示上时,会从 x 轴显示错误的标签值。我正在使用最新版本的 Chart.JS 2.8.0

这里是小提琴:https://jsfiddle.net/2mq1vt0o/

这是显示数据集中的所有数据: https://imgur.com/a/EMbiejk

当我更改数据范围时,例如从 05-01-2018 https://imgur.com/a/SXr6ymv

如您所见,这条线位于正确的位置,但是当我将鼠标悬停在该点时,它会显示一个标签,该标签是标签中的第一个值,这是错误的,因为它应该显示 06-01-2018。

{
  "data": {
    "datasets": [
      {
        "borderColor": "rgba(74,118,12,1.000)",
        "data": [
          {
            "x": "2018-01-06",
            "y": 0.242
          },
          {
            "x": "2018-01-07",
            "y": 0.197
          },
          {
            "x": "2018-01-08",
            "y": 0.15
          },
          {
            "x": "2018-01-09",
            "y": 0.15
          },
          {
            "x": "2018-01-10",
            "y": 0.15
          },
          {
            "x": "2018-01-11",
            "y": 0.137
          },
          {
            "x": "2018-01-12",
            "y": 0.11
          },
          {
            "x": "2018-01-13",
            "y": 0.11
          },
          {
            "x": "2018-01-14",
            "y": 0.21
          },
          {
            "x": "2018-01-15",
            "y": 0.273
          },
          {
            "x": "2018-01-16",
            "y": 0.3
          },
          {
            "x": "2018-01-17",
            "y": 0.237
          }
        ],
        "label": "onlydoe",
        "fill": false,
        "pointRadius": 5
      }
    ],
    "labels": [
      "2018-01-05",
      "2018-01-06",
      "2018-01-07",
      "2018-01-08",
      "2018-01-09",
      "2018-01-10",
      "2018-01-11",
      "2018-01-12",
      "2018-01-13",
      "2018-01-14",
      "2018-01-15",
      "2018-01-16",
      "2018-01-17"
    ]
  },
  "options": {
    "hover": {
      "mode": "x"
    }
  },
  "type": "line"
}

我希望当我悬停一个点时,它会显示正确的 X 轴值。

【问题讨论】:

标签: javascript json chart.js chart.js2 chartjs-2.6.0


【解决方案1】:

我认为这是因为您没有指定 xAxis 类型,因此请尝试将其添加(到您的选项中):

    "scales": {
         xAxes: [{
              type: "time"
                }]
    }

这是一个例子(https://jsfiddle.net/z8xLspd7/1/):

如果您将悬停点时出现的时间值格式化为更用户友好,只需添加以下内容(到您的选项中):

    responsive:true,
    "scales": {
         xAxes: [{
              type: "time",
              time:{
                 format: timeFormat,
                 tooltipFormat: 'll'
                },
                scaleLabel: {
                    display:     true,
                    labelString: 'Date'
                }
            }]
        }

这是一个例子(https://jsfiddle.net/z8xLspd7/2/):

参考:https://embed.plnkr.co/JOI1fpgWIS0lvTeLUxUp/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 2022-12-10
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多