Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:如何将类别链接到highcharts中的日期_Javascript_Highcharts_Time Series - Fatal编程技术网

javascript:如何将类别链接到highcharts中的日期

javascript:如何将类别链接到highcharts中的日期,javascript,highcharts,time-series,Javascript,Highcharts,Time Series,小提琴链接: current=1246400000; 阵列移位=[]; arrayTimestampActual=[]; 对于(i=0;icolor1、color2、color3和color4:每6小时的值 也就是00:00:00,05:59:59,06:00:00,11:59:59,12:00:00,17:59:59等等 我正在尝试添加第二个x轴:category:as 00:00:00至05:59:59:cate_1 06:00:00至11:59:59:cate_2 12:00:00至17:

小提琴链接:

current=1246400000;
阵列移位=[];
arrayTimestampActual=[];
对于(i=0;i<6;i++){
阵列移位[i]=电流+(i*6*3600*1000);
}
对于(i=0;i值:小时值
也就是00:00:00、01:00:00、02:00:00等。

它具有arearange->color1、color2、color3和color4:每6小时的值
也就是00:00:00,05:59:59,06:00:00,11:59:59,12:00:00,17:59:59等等

我正在尝试添加第二个x轴:category:as

00:00:00至05:59:59:cate_1
06:00:00至11:59:59:cate_2
12:00:00至17:59:59:cate_3
18:00:00至23:59:59:cate_4

有什么方法可以做到这一点吗?我找不到任何解决方案来链接类别和日期时间?

  • 添加第二个xAxis,该xAxis带有带有类别数组的
    类别
    选项集(类别1、类别2等,视需要而定)
  • 将所有当前系列设置为使用原始轴(向每个系列添加选项
    xAxis:0
  • 添加使用新轴的新隐藏序列(
    xAxis:1
    )。通过设置
    showInLegend:false
    marker:{enabled:false}
    lineWidth:0
  • 新系列中的数据是任意数据(因此只需将每个点设置为零),但系列中的项目数必须与类别中的项目数相同(因此对于4个类别
    数据:[[0,0],[1,0],[2,0],[3,0]]
例如:

我已经对示例中的四个类别进行了硬编码。您的代码必须根据您的数据计算您需要的类别数。 这些类别实际上并不与日期时间概念相关联,您只需确保拥有正确数量的类别(即计算出图表所涵盖的总时间段中有多少个6小时的间隔,并添加这些类别)

  • 添加第二个xAxis,该xAxis带有带有类别数组的
    类别
    选项集(类别1、类别2等,视需要而定)
  • 将所有当前系列设置为使用原始轴(向每个系列添加选项
    xAxis:0
  • 添加使用新轴的新隐藏序列(
    xAxis:1
    )。通过设置
    showInLegend:false
    marker:{enabled:false}
    lineWidth:0
  • 新系列中的数据是任意数据(因此只需将每个点设置为零),但系列中的项目数必须与类别中的项目数相同(因此对于4个类别
    数据:[[0,0],[1,0],[2,0],[3,0]]
例如:

我已经对示例中的四个类别进行了硬编码。您的代码必须根据您的数据计算您需要的类别数。
类别实际上并不与日期时间概念相关联,您只需确保拥有正确数量的类别(即计算出图表所涵盖的总时间段中有多少个6小时的间隔,并添加这些类别)

你能举个例子说明一下如果这样做有效的话你希望得到什么吗?一个简单的模型就可以了。你认为海报需要一个以6小时为间隔的带有类别名称的辅助xAxis(前6小时标记为Cat 1,后6小时标记为Cat 2,以此类推)@EllaRyan,是的,你是对的,我想要次轴作为日期00:00:00到05:59:59的cat_1,日期06:00:00到11:59:59的cat_2,意味着与日期时间相关的类别。你能举例说明如果这样做有效,你希望得到什么吗?一个简单的模型就可以了。你认为海报想要一个以6小时间隔标记类别名称的次轴吗(前6小时标记为1类,后6小时标记为2类,以此类推)@EllaRyan,是的,你是对的,我想要次轴作为日期00:00:00到05:59:59的cat_1,日期06:00:00到11:59:59的cat_2,表示链接到datetime的类别。谢谢!这是你已经做了一天,但可能需要超过一天,然后需要根据时间间隔重复4个类别,基本上这个类别是be一天中的一部分。一天中有四部分,即使每天的类别不同:)@Soni007是的,正如我提到的,您必须根据您的时间段更改类别我添加了一个日期时间,现在是7月1日00:00:00到7月2日05:59:59(“此日期范围假定由日期时间选择器选择”)但是类别将整个范围划分为四个部分,第一类到第四类,新日期又来了第一类。希望你理解Ella:)这是[update](),我试图根据日期更改类别,但是如果开始日期是7月1日06:00:00,结束日期是7月2日18:00:00,那么班次将是:第二班,第三班,第四班,第一班,第二班,第三班,我该怎么编码?如果一天的开始时间是00:00:00,则可以使用for循环更新类别和相关数据,这些数据将为空:)谢谢!,这是你已经做了一天,但它可能需要超过一天,然后4个类别需要根据时间间隔重复,基本上这个类别将是一天的一部分。一天分四部分,即使天是不同的,但每天的类别是相同的:)@Soni007是的,正如我提到的,您必须根据您的时间段更改类别我添加了一个datetime,现在是7月1日00:00:00到7月2日05:59:59(“此日期范围假定由datetime选择器选择”)但类别将整个范围划分为四个部分,分别为第1类到第4类,新日期再次出现第1类。希望您理解Ella:)这是[update](),我试图根据日期更改类别,但如果开始日期是7月1日06:00:00,结束日期是7月2日18:00:00,那么班次将是:班次2,班次3,班次4,班次1,班次2,班次3,我如何编码?如果一天的开始时间是00:00:00,则可以使用for循环更新类别和相关数据,这些数据将为空:)
     current = 1246406400000;
    arrayShifts = [];
    arrayTimestampActual = [];

    for (i = 0; i < 6; i++) {
      arrayShifts[i] = current + (i * 6 * 3600 * 1000);
    }

    for (i = 0; i <= 18; i++) {
      arrayTimestampActual[i] = current + (i * 1 * 3600 * 1000);
    }


    var
      color3 = [
        [arrayShifts[0], 27, 40],

        [arrayShifts[1] - 60000, 27, 40],
        [arrayShifts[1], 30, 50],

        [arrayShifts[2] - 60000, 30, 50],
        [arrayShifts[2], 40, 60],

        [arrayShifts[3] - 60000, 40, 60],
        [arrayShifts[3], 45, 65],

        [arrayShifts[4] - 60000, 45, 65],
      ],
      color2 = [
        [arrayShifts[0], 14.3, 27],

        /* [1246492800000, 14.3, 27], */
        [arrayShifts[1] - 60000, 14.3, 27],
        [arrayShifts[1], 20, 30],

        [arrayShifts[2] - 60000, 20, 30],
        [arrayShifts[2], 28, 40],

        [arrayShifts[3] - 60000, 28, 40],
        [arrayShifts[3], 30, 45],

        [arrayShifts[4] - 60000, 30, 45],
      ],
      color1 = [
        [arrayShifts[0], 0, 14.3],

        [arrayShifts[1] - 60000, 0, 14.3],
        [arrayShifts[1], 0, 20],

        [arrayShifts[2] - 60000, 0, 20],
        [arrayShifts[2], 0, 28],

        [arrayShifts[3] - 60000, 0, 28],
        [arrayShifts[3], 0, 30],

        [arrayShifts[4] - 60000, 0, 30],

      ],
      value = [
        [arrayTimestampActual[0], 10],
        [arrayTimestampActual[1], 20],
        [arrayTimestampActual[2], 25],
        [arrayTimestampActual[3], 23.8],
        [arrayTimestampActual[4], 20],
        [arrayTimestampActual[5], 12],
        [arrayTimestampActual[6], 37],
        [arrayTimestampActual[7], 23.8],
        [arrayTimestampActual[8], 35],
        [arrayTimestampActual[9], 15],
        [arrayTimestampActual[10], 22],
        [arrayTimestampActual[11], 23.8],
        [arrayTimestampActual[12], 35],
        [arrayTimestampActual[13], 38],
        [arrayTimestampActual[14], 25],
        [arrayTimestampActual[15], 30],
        [arrayTimestampActual[16], 35],
        [arrayTimestampActual[17], 27],
        [arrayTimestampActual[18], 38]
      ];


    var chart = Highcharts.chart('container', {

      title: {
        text: ''
      },

      xAxis: [{
        type: 'datetime'
      },
      {
      categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                        'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
                    opposite: true
      }],

      yAxis: {
        min: 0,

        title: {
          text: null
        }
      },

      tooltip: {
        crosshairs: true,
        shared: true,
        // valueSuffix: '°C'
      },
      chart: {
        backgroundColor: '#f4f4f4',

      },

      /*  legend: {
       }, */

      series: [{
          name: 'Value',
          data: value,
          zIndex: 1,
          marker: {
            fillColor: 'white',
            lineWidth: 2,
            lineColor: Highcharts.getOptions().colors[0]
          }
        }, {
          name: 'color1',
          data: color1,
          type: 'arearange',
          lineWidth: 0,
          //  linkedTo: ':previous',
          color: Highcharts.getOptions().colors[2],
          fillOpacity: 0.3,
          zIndex: 0,
          marker: {
            enabled: false
          }
        },
        {
          name: 'color2',
          data: color2,
          type: 'arearange',
          lineWidth: 0,
          //    linkedTo: ':previous',
          color: '#FFC200',
          fillOpacity: 0.3,
          zIndex: 0,
          marker: {
            enabled: false
          }
        },
        {
          name: 'color3',
          data: color3,
          type: 'arearange',
          lineWidth: 0,
          /*       linkedTo: ':previous', */
          color: '#f01515',
          fillOpacity: 0.3,
          zIndex: 0,
          marker: {
            enabled: false
          }
        }
      ]
    });
    var maxY = chart.yAxis[0].max;
    var color4 = [
      [arrayShifts[0], 40, maxY],

      [arrayShifts[1] - 60000, 40, maxY],
      [arrayShifts[1], 50, maxY],

      [arrayShifts[2] - 60000, 50, maxY],
      [arrayShifts[2], 60, maxY],

      [arrayShifts[3] - 60000, 60, maxY],
      [arrayShifts[3], 65, maxY],

      [arrayShifts[4] - 60000, 65, maxY],
    ];
    chart.addSeries({
      name: 'color4',
      //showInLegend: false,
      data: color4,
      type: 'arearange'
    });

chart.yAxis[0].update({
  max: maxY
});