Highcharts 单击返回xAxis类别

Highcharts 单击返回xAxis类别,highcharts,Highcharts,我似乎无法从图表本身的单击事件返回的Highchart中获取类别。换句话说,这很好: plotOptions: { series: { events: { click: function(ev) { console.log(ev.point.category); // outputs category } } } } 然而,我希望的是,当用户点击图表上的任何地方时,能够得到类别,而不仅仅是点击点。它看起来像这样 chart:

我似乎无法从图表本身的单击事件返回的Highchart中获取类别。换句话说,这很好:

plotOptions: { 
  series: { 
    events: { 
      click: function(ev) {
        console.log(ev.point.category); // outputs category
      }
    }
  }
}
然而,我希望的是,当用户点击图表上的任何地方时,能够得到类别,而不仅仅是点击点。它看起来像这样

chart: { 
  events: {
    click: function(ev) {
      console.log(ev.xAxis[0].category); // undefined because doesn't exist - sure would be nice, tho
    }
  }
}

我在这里梳理了event和highcharts对象,但没有找到如何识别哪个类别与返回的x值关联。

您可以获得位置x值并映射到类别。例如:

click:function(e){
                alert('x: ' + categories[Math.floor(e.xAxis[0].value)]);
}

我不明白你想做什么。当你点击图表上的某个地方时,你想得到最近点的类别吗?这肯定是一种思考的方式。我在更抽象地思考,x值可以直接映射到类别(例如1-100=1月,101-200=2月,201-300=3月),但这可能不是解决方案所在。谢谢你,塞巴斯蒂安!看起来答案只需要稍加修改-如果将
楼层
更改为
,它将返回正确的值。使用
floor
,它返回两个点之间的类别,这意味着当您单击“Feb”左侧时,它将返回“Jan”,当您单击“Jan”左侧时,它将返回“undefined”。一切由您决定;)的确,轮更好些。
round()
不仅更好,还必须是
round()
。因为带有
floor()
的答案返回了错误的类别。