需要帮助在Jupyter-Notebook中创建高图直方图

时间:2018-10-02 01:50:28

标签: highcharts jupyter-notebook

我正在尝试在Jupyter笔记本中嵌入Highchart直方图。我已将代码简化为2个单元格,并为实际数据简化了一个小的虚拟序列,以尝试限制可能引起问题的所有周围代码。我仍然在控制台上不断收到错误17(该系列类型不存在)。我在想问题在于导入直方图-贝尔曲线模块,但一直无法解决。任何帮助将不胜感激。

单元格1:

%%javascript
require.config({
  paths: {
    highcharts: "http://code.highcharts.com/highcharts",
    highcharts_hist: "http://code.highcharts.com/modules/histogram-bellcurve"
  },
  shim: {
    highcharts: {
      exports: "Highcharts",
      deps: ["jquery"]
    },
    highcharts_hist: {
      exports: "Highcharts",
      deps: ["highcharts"]
    }
  }
});

单元2:

%%javascript
$("#container").remove();

element.append('<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>');

require(['highcharts_hist'], function(Highcharts) {
    $('#container').highcharts({
        'title': {
            'text': 'Highcharts Histogram'
        },
        'xAxis': [{
            'title': { 'text': 'Data' },
            'alignTicks': false
        }, {
            'title': { 'text': 'Histogram' },
            'alignTicks': false,
            'opposite': true
        }],

        'yAxis': [{
            'title': { 'text': 'Data' }
        }, {
            'title': { 'text': 'Histogram' },
            'opposite': true
        }],
        'series':  [{
            'name': 'Histogram',
            'type': 'histogram',
            'xAxis': 1,
            'yAxis': 1,
            'baseSeries': 's1',
            'zIndex': -1
        }, {
            'name': 'Data',
            'type': 'scatter',
            'data': [1,1,1,2,2,3,3,3,3,3,4,5,6,7,7,7,7,7,7,7,8,8,9,9,10,11],
            'id': 's1',
            'marker': {
                'radius': 1.5
            }
        }]
    });
});

1 个答案:

答案 0 :(得分:0)

从Google看来,这种方法曾经有效,但是现在您的结果似乎是默认的。从Highcharts documentation看来,您需要专门加载模块。

在您的情况下,我成功采用了这种方法(单元2中的更改):

%%javascript
$("#container").remove();

element.append('<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>');

require(['highcharts', 'highcharts_hist'], function(Highcharts, histogram) {
    histogram(Highcharts); // This is where the magic happens

    $('#container').highcharts({
        // ... for brevity
    });
});

请参见this gistthis nbviewer来查看实际效果。