1

次の形式の JSON ファイルがあります。

[

  { name: 'Pay Off',
    data: [ [2850,0], 
            [3135,0], 
            [3420,0], 
            [3705,0], 
            [3990,0], 
            [4275,0], 
            [4560,0], 
            [4845,0], 
            [5130,0], 
            [5415,0], 
            [5700,0], 
            [5985,285],
            [6270,570], 
            [6555,855], 
            [6840,1140],
            [7125,1425],
            [7410,1710],
            [7695,1995],
            [7980,2280],
            [8265,2565],
            [8550,2850]
        ]
},

{
    name: 'Profit',
    data: [ [2850,-250],    
            [3135,-250],
            [3420,-250],
            [3705,-250],
            [3990,-250],
            [4275,-250],
            [4560,-250],
            [4845,-250],
            [5130,-250],
            [5415,-250],
            [5700,-250],
            [5985,35],
            [6270,320],
            [6555,605],
            [6840,890],
            [7125,1175],
            [7410,1460],
            [7695,1745],
            [7980,2030],
            [8265,2315],
            [8550,2600]
        ]
    }
]

「ペイオフ」と「利益」のグラフを一緒にプロットする必要があります。必要に応じて、さらに多くのプロットをリストに追加できます。データ配列は、x 軸が 0 番目の要素、y 軸が 1 番目の要素です。私が現在行っていることは次のとおりです-

$(document).ready(function() {
  var options = {
      chart: {
          renderTo: 'container',
          type: 'line'
          },
    title: {
        text: 'PayOff Curve'
    },
    legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle',
            borderWidth: 0
    },
    series: []
};
$.getJSON('data.json', function(list) {
    var newseries = {
        name: '',
        data: []
    };

    $.each(list, function(i,item){
        newseries.name = item.name;
        newseries.data = item.data;
        options.series.push(newseries);    
    });

           // Create the chart
    var chart = new Highcharts.Chart(options);
  }); 

しかし、私はまったくグラフを作成しません。私は JavaScript と Python の両方に慣れていないので、問題を理解できません。これを行うための効率的な方法を提案してください。ご協力いただきありがとうございます..

4

2 に答える 2

4

あなたの JSON は適切なものではありません。検証してみてください。プロパティ名には二重引用符が必要name: 'Pay Off'です。"name": "Pay Off"

于 2013-07-08T13:28:32.653 に答える
2

あなたの JSON は highcharts シリーズに対して有効です - それを変換しようとする必要はまったくありません:

$(document).ready(function() {
    var options = {
        chart: {
            renderTo: 'container',
            type: 'line'
        },
        title: {
          text: 'PayOff Curve'
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle',
            borderWidth: 0
        },
        series: []
    };
    $.getJSON('data.json', function(list) {
        options.series = list; // <- just assign the data to the series property.
        var chart = new Highcharts.Chart(options);
    }); 
});

それでも問題が解決しない場合は、コンソールを開いて JavaScript エラーがあるかどうかを確認します。

ここにフィドルがあります。

于 2013-07-08T12:49:13.173 に答える