9

show() を呼び出していない場合でも、matplotlib が図のウィンドウを表示することを主張することに問題があります。

問題の関数は次のとおりです。

def make_plot(df):
    fig, axes = plt.subplots(3, 1, figsize=(10, 6), sharex=True)
    plt.subplots_adjust(hspace=0.2)

    axes[0].plot(df["Date_Time"], df["T1"], df["Date_Time"], df["T2"])
    axes[0].set_ylabel("Temperature (C)")
    axes[0].legend(["T1", "T2"], bbox_to_anchor=(1.12, 1.1))
    axes[1].semilogy(df["Date_Time"], df["IGP"], df["Date_Time"], df["IPP"])
    axes[1].legend(["IGP", "IPP"], bbox_to_anchor=(1.12, 1.1))
    axes[1].set_ylabel("Pressure (mBar)")
    axes[2].plot(df["Date_Time"], df["Voltage"], "k")
    axes[2].set_ylabel("Voltage (V)")
    current_axes = axes[2].twinx()
    current_axes.plot(df["Date_Time"], df["Current"], "r")
    current_axes.set_ylabel("Current (mA)")
    axes[2].legend(["V"], bbox_to_anchor=(1.15, 1.1))
    current_axes.legend(["I"], bbox_to_anchor=(1.14, 0.9))

    plt.savefig("static/data.png")

ここで、df は pandas を使用して作成されたデータフレームです。これは Web サーバーのバックグラウンドにあるはずなので、この関数が指定されたディレクトリにファイルをドロップすることだけが必要です。ただし、実行するとこれが実行され、Figure ウィンドウが表示されてループに陥り、ページをリロードできなくなります。明らかな何かが欠けていますか?

編集:追加するのを忘れました.Windows 7、64ビットでpython 2.7を実行しています。

4

2 に答える 2