show()를 호출하지 않은 경우에도 figure wnidow 표시를 주장하는 matplotlib에 문제가 있습니다.Matplotlib이 그림 창을 표시 할 수 없습니다.
문제의 함수이다 : DF가 dataframe 인
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")
가 팬더하여 만들었다. 이것은 웹 서버의 배경에 있어야하기 때문에이 함수는 지정된 디렉토리에 파일을 놓기를 원합니다. 그러나 실행하면이 작업을 수행 한 다음 그림 창을 위로 당겨 루프에서 멈추어 페이지를 다시로드하지 못하게합니다. 나는 명백한 것을 놓치고 있는가?
편집 : 추가하는 것을 잊어 버렸습니다. Windows 7, Python 2.7에서 실행 중입니다.
당신은 당신이 [대화 형 모드]에서 실행하고 있는지 확인 할 수 있습니다 (http://matplotlib.org/faq/usage_faq.html#what-is -interactive-mode). – Evert
또한 어떤 백엔드를 사용합니까? non-gui 백엔드를 골랐습니까? – Evert
안녕하세요. 인터랙티브 모드를 강제로 해제하기 위해 plt.ioff()를 사용해 보았지만 도움이되지 않았습니다. 또는 오히려 코드가 한 번만 실행되는 대신 코드가 두 번 실행될 수있었습니다 (멈추기 전에 두 개의 그림 창 생성). non-gui 백엔드를 선택하는 방법을 설명해 주시겠습니까? –