无法从容器访问Highcharts图表,因此我无法动态更改图表中的数据

时间:2016-10-01 08:33:33

标签: javascript django charts highcharts

我在$(document).ready()。

中将图表渲染到容器

之后,我使用了这里提到的方法(How can i get access to a Highcharts chart through a DOM-Container),但它说图表没有定义。 以下是我的javascript代码。

$(document).ready(function () {
    $('#container').highcharts({
        // ignore some option here
            series: [{
            data: []
        }]
    });
});

function draw_plot(original_data) {
    var chart = $("#container").highcharts();
    // chart is not defined
    chart.series[0].setData(original_data, false);
}

我使用django作为我的Web框架。 下面是我的HTML代码。

{% load static %}
<head>
    <!-- load .js here -->
</head>

<body>
    <div id="container"></div>
<script>
    draw_plot({{ original_data }})
</script>
</body>

我的views.py

def index(request):
    template = loader.get_template('plot_example/example.html')
    x, y = synthesize_data()
    original_data = np.column_stack((x, y)).tolist()
    context = {
        'original_data': original_data,
    }
    return HttpResponse(template.render(context, request))

我的主要目的是动态更改图表数据。如果这个问题无法解决,还有其他解决方案。

更新:

  1. 我得到的错误是&#34; Uncaught TypeError:无法读取属性&#39; series&#39;未定义&#34;。当我调用draw_plot()函数时会发生这种情况。
  2. 动态地说,我的意思是每隔几分钟重新绘制一次图表。

1 个答案:

答案 0 :(得分:0)

我找出原因,我犯了一个初学者的错误。

在$(document).ready()之前调用函数draw_plot()。所以我无法访问$('#container')。highcharts()对象。