2016-10-02 6 views
0

私はmysqlサーバからデータをプロットし、ウェブサーバに表示しようとしています。私はプロッタ用にhighchartsのjavascriptライブラリを使用しています。私はmysqlデータベースからデータを取得することができ、データはサーバー側からクライアント側にjsonデータとして送信されます。その後、ハイチャートを使用して表示したいと思います。しかし、プロットしようとすると、チャートは何も表示されません。ここでフラスコウェブアプリケーションでhigchartを使用してデータをプロットする

は(私はAJAXを使用しています)、サーバー側で重要なスニペットコードです:

def background_process(): 
    start = request.form['name_start'] 
    finish = request.form['name_finish'] 
    df_sorted = mutechDataManipulate.sort_by_time(df, pd.to_datetime(str(start)), pd.to_datetime(str(finish)), 'Date') 
    print df_sorted['Date'].head() 
    df_out_json = df_sorted[['Date', 'High']].to_json(orient='values') 
    return json.dumps(df_out_json) 

ここでは、クライアント側(私は成功し、サーバからJSONデータを取得する)です:私は、最後に

$(document).ready(function(){ 
$(document).on("click", "#btn1", function() {  
    console.log("alii"); 
    var user = $('input[name="name_start"]').val(); 
    var pass = $('input[name="name_finish"]').val(); 
    console.log("sivgin");  
    $.ajax({ 
     url: '/background_process', 
     data: $("form").serialize(), 
     type: "POST", 
     success: function(response) { 
      $('#result').highcharts({ 
     xAxis: { 
      type: 'datetime' 
     }, 
     yAxis: { 
      title: { 
       text: 'High' 
      } 
     }, 
     legend: { 
      enabled: false 
     }, 
     series: [{ 
      type: 'area', 
      name: 'USD to EUR', 
      data: response 
       }] 
     }); 
      console.log(response) 
     }, 
     error: function(error) { 
      console.log(error); 
     } 
    }); 
}); 
}); 

このような空白のグラフを得る:

empty chart

また、私は時系列の線図をプロットしようとします。なにが問題ですか?

編集:htmlファイルに忘れ:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Mutech</title> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="static/css/bootstrap.min.css"> 
    <script src="static/js/jquery.min.js"></script> 
    <script src="static/js/bootstrap.min.js"></script> 
    <script src="static/js/script.js"></script> 
    <script src="static/js/jquery-1.9.1.js"></script> 
    <script src="https://code.highcharts.com/highcharts.js"></script> 
    <script src="https://code.highcharts.com/modules/exporting.js"></script> 

</head> 
<body> 
<br/> 
<div class="container"> 
    <form class="form-inline" id="form1" method="post" > 
    <div class="form-group"> 
     <label>Start Date</label> 
     <input class="form-control" id="id_start" name ="name_start"> 
    </div> 
    <div class="form-group"> 
     <label for="pwd">Finish Date</label> 
     <input class="form-control" id="id_finish" name ="name_finish"> 
    </div> 
    <br/><br/> 
    <br/> 
    <button type="button" class="btn btn-default" id= "btn1">Submit</button> 

    </form> 
</div> 

<div class="container" id = "result"> 
</div> 



</body> 
</html> 
+0

グラフは空ですので、表示するデータはほとんどありません。あなたのAJAXコールをチェックしてください。データを取得してdivに表示してみてください。デバッグに役立ちます。非常に似た問題が発生しました。チャートの設定が正しくないことが判明しました。また、コンソールのエラーメッセージを投稿することができれば役に立ちます:) –

+0

実際にはエラーメッセージは表示されず、すべてが正常に表示され、コンソールにデータが表示されます。 :) –

+0

あなたの応答データはどのように見えますか? –

答えて

0

それはあなたのデータはHighchartsのために正しくフォーマットされて見ていません。 this other StackOverlow question about JSON data and Highchartsを見ると、データは辞書のリストでなければならないことがわかります。

これを行う理由は、"records"という値をorientオプションに渡す理由です。

df_out_json = df_sorted[['Date', 'High']](orient="records") 
#[{"Date":1285632000000, "High":None}, {"Date":1285545600000, "High":25.39}] 

to_jsonためpandas documentationの詳細情報。

+0

私は方向を変更しました。 [{\ "Date \":1285632000000、\ "High \":NULL}、{\ "Date \": 1285545600000、\ "高\:25.39}] 何も変更はありません。 @ Jalepeno112 –

+0

私は、あなたが '高'の代わりに 'y'を使用しようと思うかもしれないと思います。 –

+0

私は問題がjsonの文字列だと思う。応答データは文字列です。私はjavascriptやその他の方法で数値に変換しなければなりません。私はjavascriptで新しいので、私はこれを行う方法を知らない。 –

関連する問題