在同一页面上使用 Highstock 和 Highchart-Gantt

using Highstock and Highchart-Gantt on same page

我正在尝试使用 Highcharts set of javascript libraries to create a page that displays both a stock prices chart and a gantt chart (using the Highstocks and Highcharts Gantt 库)

我在单独的页面上独立创建和显示这些图都没有问题。

但是,我无法让这两个库协同工作以在同一网页上显示这两个图。

对于如何让这两个库协同工作,我将不胜感激。

尝试 1. 如果我先导入 highstock 脚本

<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/gantt/highcharts-gantt.js"></script>

然后会发生以下情况:

尝试 2. 如果我先导入甘特图脚本

<script src="https://code.highcharts.com/gantt/highcharts-gantt.js"></script>
<script src="https://code.highcharts.com/stock/highstock.js"></script>

然后会发生以下情况:

示例代码

用于演示我 运行 遇到的问题的最小可行代码如下:

<html>
<head>
    <script src="https://code.highcharts.com/stock/highstock.js"></script>
    <script src="https://code.highcharts.com/gantt/highcharts-gantt.js"></script>
</head>
<body>
    <!-- ================================================================== -->
    <!-- PRICES PLOT -->
    <!-- ================================================================== -->
    <div id="pricesChart" style="height: 500px; min-width: 310px"></div>
    <script type="text/javascript">
        var prices =
            [[Date.parse("2019-06-01 00:00:00"), 0.081558],
             [Date.parse("2019-06-02 00:00:00"), 0.081728],
             [Date.parse("2019-06-03 00:00:00"), 0.081624],
             [Date.parse("2019-06-04 00:00:00"), 0.08164500000000001]
             ];

        var lineplotOptions = {
            xAxis: { type: 'datetime' },
            series: [{
                    type: "line",
                    data: prices,
                    yAxis: 0,
                }],
        };

        Highcharts.stockChart('pricesChart', lineplotOptions);
    </script>

    <!-- ================================================================== -->
    <!-- GANT CHART -->
    <!-- ================================================================== -->
    <div id="container"></div>
    <script type="text/javascript">
        var tasks =
            [{
                start: Date.parse("2019-06-01 06:00:00"),
                end: Date.parse("2019-06-01 20:30:00"),
                name: 'task1'
            }, {
                start: Date.parse("2019-06-01 09:20:00"),
                end: Date.parse("2019-06-03 02:00:00"),
                name: 'task2'
            }, {
                start: Date.parse("2019-06-02 11:00:00"),
                end: Date.parse("2019-06-03 21:10:00"),
                name: 'task1'
            }];

        var gant_options = {
            yAxis: { uniqueNames: true },
            scrollbar: {enabled: true },
            series: [{
                name: 'Project 1',
                data: tasks
            }]
        }

        var mychart = Highcharts.ganttChart('container', gant_options);

    </script>

</body>
</html>

Whosebug 上的类似问题

以下是关于堆栈溢出的类似问题,但并不能完全解决我的具体情况。

您可以像这样分别加载 highstockhighcharts-gantt:

<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script>
    var Highstock = window.Highcharts;
    window.Highcharts = null;
</script>
<script src="https://code.highcharts.com/gantt/highcharts-gantt.js"></script>

初始化:

Highstock.stockChart('container1', {
  series: [{
    data: []
  }]
});

Highcharts.ganttChart('container2', {
  series: [{
    data: []
  }]
});

演示: