Javascript 在给定数据集的highchart中,如何在x轴标签下添加y轴的值

Javascript 在给定数据集的highchart中,如何在x轴标签下添加y轴的值,javascript,highcharts,Javascript,Highcharts,我正在尝试将我的yaxis值附加到xaxis标签下。下面我准备了一张图片来说明我要完成的任务 基本上,我想获取相应年份的第一个值,并将其设置为x轴标签下的标签 这是我对所附数据集的处理 目前,我仅为x轴设置年份 xAxis: { type: 'datetime', dateTimeLabelFormats: { day: '%d %b %Y' //ex- 01 Jan 2016 } } 我还试图弄清楚如何在x轴上制作每年的节目,而不仅仅是2008201

我正在尝试将我的yaxis值附加到xaxis标签下。下面我准备了一张图片来说明我要完成的任务

基本上,我想获取相应年份的第一个值,并将其设置为x轴标签下的标签

这是我对所附数据集的处理

目前,我仅为x轴设置年份

xAxis: {
    type: 'datetime',
    dateTimeLabelFormats: {
      day: '%d %b %Y' //ex- 01 Jan 2016
    }
  }
我还试图弄清楚如何在x轴上制作每年的节目,而不仅仅是20082010201220142016

我已经这样做了好几个小时了,运气不好。如果任何海图大师能帮我解决这个问题,我将不胜感激


谢谢。

当没有足够的空间放置标签时,Highcharts不会在所有年份都进行渲染。通过设置
xAxis.tickInterval:365*24*3600*1000
,可以强制Highcharts渲染这些标签

关于标签问题,您需要使用
xAxis.labels.formatter
,演示:

并使用
tickInterval
设置进行演示:

片段:

xAxis: {
  type: 'datetime',
  tickInterval: 265 * 24 * 3600 * 1000,
  labels: {
    formatter: function() {

      var currentX = new Date(this.value),
        xIndex;

      // Because labels in Highcharts are rendered at 1st of Month,
      // But data is last day of the month, we need to jump to the last day of the January:
      currentX.setUTCDate(31);

      // xData stores base x-values for series, get current date index:
      xIndex = this.axis.series[0].xData.indexOf(+currentX);

      return Highcharts.dateFormat('%d %b %Y', this.value) + '<br>' + this.axis.series[0].yData[xIndex]; // the same as with xData, we can use yData
    }
  }
},
xAxis:{
键入:“日期时间”,
时间间隔:265*24*3600*1000,
标签:{
格式化程序:函数(){
var currentX=新日期(此.value),
xIndex;
//因为Highcharts中的标签是在每月1日呈现的,
//但数据是本月的最后一天,我们需要跳到1月的最后一天:
电流x.设定值(31);
//扩展数据存储系列的基本x值,获取当前日期索引:
xIndex=this.axis.series[0].xData.indexOf(+currentX);
返回Highcharts.dateFormat(“%d%b%Y”,this.value)+'
'+this.axis.series[0].yData[xIndex];//与扩展数据相同,我们可以使用yData } } },
Hey Pawel我非常感谢你的帮助。只是一个关于以下年份数字的简单问题。它们看起来都没有定义。有什么想法吗?再次感谢!!你在哪个时区?以上两个演示对我都有用。你能查一下xIndex吗?如果不是-1?还可以尝试设置
currentX.setHours(hourscaffset)
。嗨,Pavel查看您的示例,我发现数据集显示的是2007年,而不是2008年。看看console.log这里是第一个时间戳Mon Dec 31 2007 19:00:00 GMT-0500(EST)记录中没有2007?它仍然显示未定义。有什么想法吗?最后一次更新。当我切换到currentX.setDate(30)时;第一年总是未定义的,下一年显示去年12月31日,下一年的数字标签。再次感谢您的帮助我的错误,应该是
setUTCDate(31)
,而不是
setDate(31)
。此外,不要从
indexOf()
中删除
+
,否则它将无法处理相应的值。。更新答案。