2017-12-05 15 views
0

Flaskを使用して、特定のエンドポイントでグラフを生成してブラウザに送信しています。私はグラフ化しているデータを更新しますが、それ以外のものは更新しません。私は/graphエンドポイントを2秒に1回呼んでいますが、プロットはその時間に劇的に変化します。例としては、以下の通りです:軸描画のMatplotlibエラー

enter image description here

enter image description here enter image description here

これは私が使用していたコードです:

@app.route('/graph') 
def graph_ep(): 
    fig = plt.figure() 

    # Matplotlib setup 
    style.use('fivethirtyeight') # Make the graphs look better 

    ax1 = fig.add_subplot(1, 1, 1) 

    ax1.clear() 
    ax1.plot(x, y, marker='o', label="Heart Data") 
    ax1.plot(x, LRL_data, marker='o', label="Lower Rate Limit") 
    ax1.plot(x, URL_data, marker='o', label="Upper Rate Limit") 
    ax1.set(xlabel="Time", 
     ylabel="Beats per Minute", 
     title="Moving Average of Heart Rate") 

    ax1.legend(loc="upper center") 

    ax1.grid(True) 

    # Change y axis 
    ax1.set_ylim(0,2.5) 
    x1, x2, y1, y2 = plt.axis() 
    plt.axis((x1,x2,0.0, 2.5)) 
    y_axis = [float(i)/10.0 for i in range(0,25,2)] 
    plt.yticks(y_axis) 

    time_string = str(int(time.time())) 
    file_name = 'static/graphs/real/graph' + time_string + '.png' 

    plt.savefig(file_name) 

    return '<img src="' + file_name + '">' 

どのように私は軸、軸(グラフのすべての機能維持することができますラベル、グリッドなど)を最初のイメージと同じにするだけですか?

答えて

0

配列yのデータが矛盾しています。私は同時にそれに弦と浮動小数点を持っていたので、混乱していた。matplotlib。たとえば、[0.0, 0.1, '0.2', '0.3', '0.4']です。文字列を浮動小数点に変換すると、問題はほとんど解決されました。ただし、軸ラベルはまだ隠れています。