【问题标题】:Multiple timelines on one chart in highchartshighcharts 中一张图表上的多个时间线
【发布时间】:2019-09-14 15:21:03
【问题描述】:

我希望在 highcharts 中制作以下图表

https://drive.google.com/open?id=1eh9QTsiENZkQoipKkoYglNN_IJFqlkez

最好的方法是什么?

任何指导和代码示例将不胜感激

非常感谢

【问题讨论】:

    标签: javascript highcharts


    【解决方案1】:

    您应该尝试使用带有水平线的散点图的变体。检查下面发布的演示和代码。

    代码:

    function generateLineData(year) {
      return [
        [+new Date('01-01-2019'), year],
        [+new Date('04-01-2019'), year],
        [+new Date('07-01-2019'), year],
        [+new Date('10-01-2019'), year]
      ]
    }
    
    function generateScatterData(year) {
      return [
        [+new Date('01-10-2019'), year],
        [+new Date('01-27-2019'), year],
        [+new Date('03-08-2019'), year],
        [+new Date('04-13-2019'), year],
        [+new Date('04-13-2019'), year],
        [+new Date('07-22-2019'), year],
        [+new Date('08-03-2019'), year],
        [+new Date('09-23-2019'), year]
      ]
    }
    
    Highcharts.chart('container', {
      credits: {
        enabled: false
      },
      yAxis: {
        title: {
          text: ''
        },
        gridLineWidth: 0,
        labels: {
          formatter: function() {
            const values = [2017, 2018, 2019]
    
            if (values.includes(this.value)) {
              return this.value;
            }
    
            return '';
          }
        }
      },
      xAxis: {
        type: 'datetime',
        labels: {
        	formatter: function () {
            return Highcharts.dateFormat('%b', this.value);
          }
        }
      },
      time: {
        useUTC: false
      },
      plotOptions: {
        line: {
        	enableMouseTracking: false,
          marker: {
            enabled: false
          },
          color: '#bbb',
          lineWidth: 3
        },
        scatter: {
          colorByPoint: true,
          marker: {
            symbol: 'circle',
            radius: 7,
            lineWidth: 2
          }
        }
      },
      series: [{
        id: 'main',
        name: 'line series',
        data: generateLineData(2017)
      }, {
        linkedTo: 'main',
        data: generateLineData(2018)
      }, {
        linkedTo: 'main',
        data: generateLineData(2019)
      }, {
        linkedTo: 'main',
        type: 'scatter',
        data: generateScatterData(2017)
      }, {
        linkedTo: 'main',
        type: 'scatter',
        data: generateScatterData(2018)
      }, {
        linkedTo: 'main',
        type: 'scatter',
        data: generateScatterData(2019)
      }],
    });
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <div id="container"></div>

    演示:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 2012-06-03
      相关资源
      最近更新 更多