我有一个已转换为JSON的Pandas数据框,如下所示:

json_data = data_df.to_json()


原始数据框看起来类似于以下内容:

    col1  col2  col3  col4
0     1     2     2    -1
1     2     4     3    -2
2     3     6     4    -3
3     4     8     5    -4
4     5     10    6    -5
...


JSON字符串与此类似:

[{"col1":1,"col2":2,"col3":2,"col4":-1},{"col1":2,"col2":4,"col3":3,"col4":-2},{"col1":3,"col2":6,"col3":4,"col4":-3},{"col1":4,"col2":8,"col3":5,"col4":-4}]


我的Highcharts实现如下:

$(document).ready(function() {

    var my_data = '{{ json_data }}'

    // create data chart
    $('#container').highcharts({
        chart: {
            renderTo: 'chart_panel',
            type: 'line',
        },
        legend: {layout: 'vertical',
                 align: 'right',
                 verticalAlign: 'middle',
                 borderWidth: 0,
        },
        title: {text: 'Roehrig Damper Data',
                x: -20 // center title
        },
        xAxis: {title: {text: 'Velocity (m/sec)'}},
        yAxis: {title: {text: 'Force (N)'}},
        series: [ {data: my_data} ],
    });

});


{{ json_data }}来自我的Django python视图,我已经确认通过浏览器控制台正确设置了格式。目前,我的代码仅显示空白的Highcharts图表,其中填充了零数据。我尝试了几种不同的方式来操纵所需的数据,但是没有成功。

我的目标是对col2绘制col1,在同一图表上对col4绘制col3,换句话说,x轴将同时由col1col3定义。

有没有一种方法可以实现上述目标,如果可以,该如何实现?

编辑

在@Andrew_Lvov的帮助下,我现在有了一个看起来像这样的JSON对象:

json_data = [
    {
        'name': "col1",
        'data': array([1, 2, 3, 4, 5])},
    {
        'name': "col2",
        'data': array([2, 4, 6, 8, 10])},
    // etc.
]


现在我的问题是它在数据中添加了单词array

最佳答案

尝试

var myData = {{ json_data | safe }};


更新:

您的数据应采用以下格式:

json_data = [
    {
        'name': "col1",
        'data': [1, 2, 3, 4, 5]},
    {
        'name': "col2",
        'data': [2, 4, 6, 8, 10]},
]


系列参数:

        series: myData


更新#2:

json_data = [{'data': list(value.values), 'name': key} for key, value in data_df.items()]

09-26 21:08
查看更多