2017-11-10 4 views
-1

enter image description here 저는 기계 데이터의 시각화를 시도하고 있으며 팬더 데이터 프레임을 사용하여 데이터를 저장하고 있습니다. 나는 for 루프를 사용하여 데이터 세트의 다양한 슬라이스를 선택한다. 내가 만든 시각화는 X 축에 시간을 가지며 시각화가 밀리 초 단위이기 때문에 플롯의 폭이 매우 길다. Matplotlib이 파일을 올 바르고 완전하게 저장할 수 없습니다.

def jobwise_plotter(prog_no): 
    df = single_df[single_df['PRG_NO']==prog_no] 

    #fig1 = plt.figure() 

    #jobs_list = list(df['Job_no'].unique()) 
    #tools_list = list(df['TOOL_No.'].unique()) 

    for job in list(df['Job_no'].unique()): 

     df_temp = df[df['Job_no']==job] 

     time_axis_max = 0 

     for tool in list(df_temp['TOOL_No.'].unique()): 

      plt.plot(df_temp['Time'][df_temp['TOOL_No.']==tool], 
        df_temp['Spindle'][df_temp['TOOL_No.']==tool], label=str(tool)) 



      if int(df_temp['Time'][df_temp['TOOL_No.']==tool].max()) > time_axis_max: 
       time_axis_max = int(df_temp['Time'][df_temp['TOOL_No.']==tool].max()) 




     plt.title("Prog No. : "+ str(prog_no) + ", Job no : "+ str(job) + ", All Tools") 

     plt.xlabel("Time (in ms.)") 
     plt.ylabel("Spindle Load") 

     name = "prog_"+str(prog_no)+"_"+"JOB_"+str(job)+"_All_tools" 
     plt.xticks(np.arange(0, time_axis_max+10000, 5000)) 
     plt.grid(linewidth = 2, linestyle = '-', color='#eff3f9') 


     lgd = plt.legend(loc='upper center', bbox_to_anchor=(0.5, 0.98), ncol=10) 

     plt.tight_layout() 
     fig1 = plt.gcf() 

     fig1.set_size_inches(100, 10) 
     #fig1 = plt.gcf() 
     print(name) 
     fig1.savefig(name, dpi=500, bbox_extra_artists=(lgd,)) 

     plt.show() 

코드

는 잘 작동하고 IPython 노트북에 필요한 시각화를 구성하지만, 저장된 이미지는 (지금은 세 번 냉동 내 시스템)을 볼 수 없습니다입니다. 저장할 수있는 이미지에 제한이 있습니까? 그림은 노트북에서 볼 수 있으며 브라우저에서 다운로드 할 수도 있습니다.

+0

을 저장해야합니다. 또한 [최소한의 완전하고 검증 가능한 예제] (http://stackoverflow.com/help/mcve)는 복제 할 수 없으므로 훨씬 더 좋습니다. –

+0

나는 의도 한 이미지를 추가했다. 코드에서 생성 된 이미지는 볼 수 없습니다. – user3591675

답변

2

주피터 노트에 표시된 그림은 fig.savefig(<some buffer>, bbox_inches="tight")을 사용하여 저장됩니다.

는 따라서, 디스크에 저장할 때 같은 그림을 얻기 위해, 당신은 또한 당신이 의도와 실제 결과가 더 좋을 것이다 보일 경우, bbox_inches="tight" 인수를 사용하여

fig.savefig("output.png", bbox_inches="tight") 
+0

좋은 지적. 실행 된 코드에서 변경되었지만 여전히 저장된 이미지를 볼 수는 없습니다. – user3591675

+0

이미지가 저장되었지만 열 수 없다는 뜻입니까? 물론, 'fig.savefig ("output.png", bbox_inches = "tight")'또는'fig.savefig ("output.whatever", format = "png", bbox_inches) 형식을 지정해야합니다. = "tight")' – ImportanceOfBeingErnest

+0

윈도우와 리눅스 시스템에서, 파일 시스템 미리보기는 그 이미지를 보여 주지만 그것을 클릭하면 뷰어가 압축을 풀 수없는 것처럼 시스템이 정지됩니다. – user3591675